https://www.cds.caltech.edu/~murray/mlswiki/api.php?action=feedcontributions&user=Murray&feedformat=atomMLSwiki - User contributions [en]2024-03-29T00:46:20ZUser contributionsMediaWiki 1.35.13https://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Main_Page&diff=1620Main Page2021-01-24T07:11:43Z<p>Murray: /* News (archive) */</p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Mathematical Introduction to Robotic Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
Welcome to {{SITENAME}}. This is the wiki for the text ''A Mathematical Introduction to Robotic Manipulation'' by Richard Murray, Zexiang Li and Shankar Sastry. On this site you will find information on the {{current version|current version}} of the book as well as additional [[Additional Examples|examples]], [[Additional Exercises|exercises]], and [[Frequently Asked Questions|frequently asked questions]] (coming soon).<br />
<br />
''This site is currently under construction and some links may not be functional.''<br />
<br />
===== News ([[Archived news|archive]]) =====<br />
* 20 Jan 2020: The publisher has decided that the PDF for this book can no longer be made available online.<br />
* 22 Jul 09: Chapter pages are getting set up (with summaries)<br />
* 25 Jun 09: The [[first edition]] PDF is now available online (with permission of the publisher)<br />
* 12 Jun 09: initial wiki creation<br />
<p><br />
<br />
=== Contents ===<br />
{| width=100% border=1 <br />
|- valign=top<br />
| width=50% |<br />
* {{ch:Preface}}<br />
* {{ch:Introduction}}<br />
* {{ch:Rigid Body Motion}}<br />
* {{ch:Manipulator Kinematics}}<br />
* {{ch:Robot Dynamics and Control}}<br />
* {{ch:Multifingered Hand Kinematics}}<br />
| width=50% |<br />
* {{ch:Hand Dynamics and Control}}<br />
* {{ch:Nonholonomic Behavior in Robotic Systems}}<br />
* {{ch:Nonholonomic Motion Planning}}<br />
* {{ch:Future Directions}}<br />
* {{ch:Lie Groups and Robot Kinematics}}<br />
* [[Bibliography]] and [[Index]]<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Rigid_Body_Motion&diff=1619Rigid Body Motion2021-01-24T07:10:27Z<p>Murray: </p>
<hr />
<div>{{chapter header|Introduction|Rigid Body Motion|Manipulator Kinematics}}<br />
<br />
A rigid motion of an object is a motion which preserves distance<br />
between points. The study of robot kinematics, dynamics, and control<br />
has at its heart the study of the motion of rigid objects. In this<br />
chapter, we provide a description of rigid body motion using the tools<br />
of linear algebra and screw theory.<br />
<br />
== Chapter Summary ==<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li><br />
Rotational motion of a rigid body is represented by an element of<br />
the special orthogonal group<br />
<center><math><br />
SO(3) = \{ R \in {\mathbb R}^{3 \times 3} \mid R^T R = I, \det R = 1 \}.<br />
</math></center><br />
<!--<br />
which is often parameterized by the exponential map<br />
<center><amsmath><br />
\exp: so(3) \longrightarrow SO(3): \widehat{\omega}\theta \mapsto<br />
e^{\widehat{\omega} \theta}.<br />
</amsmath></center><br />
--><br />
Other parameterizations of SO(3) include fixed and Euler angle sets,<br />
and unit quaternions.<br />
</li><br />
<br />
<li> The ''configuration'' of a rigid body is<br />
represented as an element <amsmath>g \in<br />
\text{SE}(3)</amsmath>. An element <amsmath>g \in \text{SE}(3)</amsmath> may also be viewed as a mapping<br />
<amsmath>g:{\mathbb R}^3 \to {\mathbb R}^3</amsmath> which preserves distances and angles between<br />
points. In homogeneous coordinates, we write<br />
<center><amsmath><br />
g = \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix} \qquad<br />
\aligned<br />
R &\in SO(3) \\<br />
p &\in {\mathbb R}^3.<br />
\endaligned<br />
</amsmath></center><br />
The same representation can also be<br />
used for a rigid body transformation<br />
between two coordinate frames.<br />
</li><br />
<br />
<li> ''Rigid body transformations'' can be represented as the<br />
exponentials of twists:<br />
<center><amsmath><br />
g = \exp(\widehat{\xi} \theta) \qquad <br />
\widehat{\xi} = \begin{bmatrix} \widehat{\omega} & v \\ 0 & 0 \end{bmatrix}, \quad<br />
\aligned<br />
\widehat{\omega} &\in so(3), \\<br />
v &\in {\mathbb R}^3, \theta \in {\mathbb R}.<br />
\endaligned<br />
</amsmath></center><br />
<br />
The twist coordinates of <amsmath>\widehat{\xi}</amsmath> are <amsmath>\xi = (v,\omega) \in<br />
{\mathbb R}^6</amsmath>.<br />
</li><br />
<br />
<li> A twist <amsmath>\xi = (v, \omega)</amsmath> is associated with a ''screw''<br />
motion having attributes<br />
<center><amsmath><br />
\alignedat 2 <br />
&\text{pitch:} &\qquad h &= \frac{\omega^T v}{\|\omega\|^2}; \\<br />
&\text{axis:} &\qquad<br />
l &= \begin{cases}<br />
\{ \frac{\omega\times v}{\|\omega\|^2} + \lambda\omega:<br />
\lambda \in{\mathbb R} \}, &\text{if $\omega\neq0$} \\<br />
\{ 0 + \lambda v:\lambda \in {\mathbb R} \}, &\text{if $\omega=0$};<br />
\end{cases} \\<br />
&\text{magnitude:} &\qquad<br />
M &= \begin{cases}<br />
\|\omega\|, &\text{if $\omega\neq0$} \\<br />
\| v \|, &\text{if $\omega = 0$}.<br />
\end{cases}<br />
\endalignedat<br />
</amsmath></center><br />
<br />
Conversely, given a screw we can write the associated twist. Two<br />
special cases are ''pure rotation'' about an axis <amsmath>l<br />
= \{q + \lambda \omega\}</amsmath> by an amount <amsmath>\theta</amsmath> and ''pure translation''<br />
along an axis <amsmath>l = \{0 + \lambda v\}</amsmath>:<br />
<center><amsmath><br />
\xi = \begin{bmatrix} -\omega\times q \\ \omega \end{bmatrix} \theta<br />
\quad\!\text{(pure rotation)} <br />
\qquad<br />
\xi = \begin{bmatrix} v \\ 0 \end{bmatrix} \theta <br />
\quad\!\text{(pure translation)}.<br />
</amsmath></center><br />
<br />
</li><br />
<br />
<li> The ''velocity'' of a rigid motion <amsmath>g(t) \in \text{SE}(3)</amsmath> can be<br />
specified in two ways. The ''spatial velocity'',<br />
<center><amsmath><br />
\widehat{V}^s = \dot g g^{-1},<br />
</amsmath></center><br />
<br />
is a twist which gives the velocity of the rigid body as measured by<br />
an observer at the origin of the reference frame. The ''body velocity'',<br />
<center><amsmath><br />
\widehat{V}^b = g^{-1} \dot g,<br />
</amsmath></center><br />
<br />
is the velocity of the object in the instantaneous body frame. These<br />
velocities are related by the ''adjoint transformation''<br />
<center><amsmath><br />
V^s = \operatorname{Ad}_g V^b \qquad <br />
\operatorname{Ad}_g = \begin{bmatrix} R & \widehat{p}R \\ 0 & R \end{bmatrix},<br />
</amsmath></center><br />
<br />
which maps <amsmath>{\mathbb R}^6 \to {\mathbb R}^6</amsmath>. To transform velocities between<br />
coordinate frames, we use the relations<br />
<center><amsmath><br />
\aligned<br />
V_{ac}^s &= V_{ab}^s + \operatorname{Ad}_{g_{ab}} V_{bc}^s \\<br />
V_{ac}^b &= \operatorname{Ad}_{g_{bc}^{-1}} V_{ab}^b + V_{bc}^b,<br />
\endaligned<br />
</amsmath></center><br />
<br />
where <amsmath>V_{ab}^s</amsmath> is the spatial velocity of coordinate frame <amsmath>B</amsmath><br />
relative to frame <amsmath>A</amsmath> and <amsmath>V_{ab}^b</amsmath> is the body velocity.<br />
</li><br />
<br />
<li> ''Wrenches'' are represented as a force, moment pair<br />
<center><amsmath><br />
F = (f, \tau) \in {\mathbb R}^6.<br />
</amsmath></center><br />
<br />
If <amsmath>B</amsmath> is a coordinate frame attached to a rigid body, then we write<br />
<amsmath>F_b = (f_b, \tau_b)</amsmath> for a wrench applied at the origin of <amsmath>B</amsmath>, with<br />
<amsmath>f_b</amsmath> and <amsmath>\tau_b</amsmath> specified with respect to the <amsmath>B</amsmath> coordinate frame.<br />
If <amsmath>C</amsmath> is a second coordinate frame, then we can write <amsmath>F_b</amsmath> as an<br />
''equivalent wrench'' applied at <amsmath>C</amsmath>:<br />
<center><amsmath><br />
F_c = \operatorname{Ad}_{g_{bc}}^T F_b.<br />
</amsmath></center><br />
<br />
For a rigid body with configuration <amsmath>g_{ab}</amsmath>, <amsmath>F^s := F_a</amsmath> is called<br />
the ''spatial'' wrench and <amsmath>F^b := F_b</amsmath> is called the ''body''<br />
wrench.<br />
</li><br />
<br />
<li> A wrench <amsmath>F = (f, \tau)</amsmath> is associated with a screw having attributes<br />
<center><amsmath><br />
\alignedat 2 <br />
&\text{pitch:} &\qquad h &= \frac{f^T \tau}{\|f\|^2}; \\<br />
&\text{axis:} &\qquad<br />
l &= \begin{cases}<br />
\{ \frac{f\times \tau}{\|f\|^2} + \lambda f:<br />
\lambda \in{\mathbb R} \}, &\text{if $f\neq0$} \\<br />
\{ 0 + \lambda \tau:\lambda \in {\mathbb R} \}, &\text{if $f=0$};<br />
\end{cases} \\<br />
&\text{magnitude:} &\qquad<br />
M &= \begin{cases}<br />
\|f\|, &\text{if $f\neq0$} \\<br />
\| \tau \|, &\text{if $f = 0$}.<br />
\end{cases}<br />
\endalignedat<br />
</amsmath></center><br />
<br />
Conversely, given a screw we can write the associated wrench.<br />
</li><br />
<br />
<li> A wrench <amsmath>F</amsmath> and a twist <amsmath>V</amsmath> are ''reciprocal'' if <amsmath>F \cdot V = 0</amsmath>.<br />
Two screws <amsmath>S_1</amsmath> and <amsmath>S_2</amsmath> are reciprocal if the twist <amsmath>V_1</amsmath><br />
about <amsmath>S_1</amsmath> and the wrench <amsmath>F_2</amsmath> along <amsmath>S_2</amsmath> are reciprocal. The<br />
''reciprocal product'' between two screws is given by<br />
<center><amsmath><br />
S_1 \odot S_2 = V_1 \cdot F_2 = V_1 \odot V_2 = v_1 \cdot \omega_2<br />
+ v_2^T \omega_1<br />
</amsmath></center><br />
<br />
where <amsmath>V_i = (v_i, \omega_i)</amsmath> represents the twist associated with<br />
the screw <amsmath>S_i</amsmath>. Two screws are reciprocal if the reciprocal product<br />
between the screws is zero.<br />
</li><br />
<br />
<li> A ''system of screws'' <amsmath>\{S_1, \dots, S_k\}</amsmath> describes the<br />
vector space of all linear combinations of the screws <amsmath>\{S_1,<br />
\dots, S_k\}</amsmath>. A ''reciprocal screw system'' is the set of all<br />
screws which are reciprocal to <amsmath>S_i</amsmath>. The dimensions of a screw<br />
system and its reciprocal system sum to 6 (in <amsmath>se(3)</amsmath>).</li><br />
<br />
<!--<br />
<li><br />
A Lie subgroup of SE(3) is used to model constrained rigid motions.<br />
The three one dimensional Lie subgroups <amsmath>R, T</amsmath> and <amsmath>H_{\rho}</amsmath><br />
are used to model rigid motions generated by primitive joints, and<br />
the Lie subgroups <amsmath> T(3), SO(3)</amsmath>, <amsmath>SE(2), X </amsmath> and<br />
<amsmath>SE(3)</amsmath> are often<br />
used to model a manipulator's end-effector motions.</li><br />
--><br />
<br />
<!--<br />
<li><br />
Two special families of regular submanifolds of SE(3), category I<br />
and category II submanifolds, are used to model constrained rigid<br />
motions that lack a group structure.<br />
</li><br />
--><br />
</ol><br />
<br />
== Additional Information ==</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Main_Page&diff=1618Main Page2021-01-24T07:09:36Z<p>Murray: </p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Mathematical Introduction to Robotic Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
Welcome to {{SITENAME}}. This is the wiki for the text ''A Mathematical Introduction to Robotic Manipulation'' by Richard Murray, Zexiang Li and Shankar Sastry. On this site you will find information on the {{current version|current version}} of the book as well as additional [[Additional Examples|examples]], [[Additional Exercises|exercises]], and [[Frequently Asked Questions|frequently asked questions]] (coming soon).<br />
<br />
''This site is currently under construction and some links may not be functional.''<br />
<br />
===== News ([[Archived news|archive]]) =====<br />
* 20 Jan 2020: The publisher has decided that the PDF for this book can no longer be made available online.<br />
* 22 Jul 09: Chapter pages are getting set up (with summaries)<br />
* 25 Jun 09: The [[first edition]] PDF is now available online<br />
* 12 Jun 09: initial wiki creation<br />
<p><br />
<br />
=== Contents ===<br />
{| width=100% border=1 <br />
|- valign=top<br />
| width=50% |<br />
* {{ch:Preface}}<br />
* {{ch:Introduction}}<br />
* {{ch:Rigid Body Motion}}<br />
* {{ch:Manipulator Kinematics}}<br />
* {{ch:Robot Dynamics and Control}}<br />
* {{ch:Multifingered Hand Kinematics}}<br />
| width=50% |<br />
* {{ch:Hand Dynamics and Control}}<br />
* {{ch:Nonholonomic Behavior in Robotic Systems}}<br />
* {{ch:Nonholonomic Motion Planning}}<br />
* {{ch:Future Directions}}<br />
* {{ch:Lie Groups and Robot Kinematics}}<br />
* [[Bibliography]] and [[Index]]<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Main_Page&diff=1617Main Page2021-01-24T07:09:20Z<p>Murray: /* News (archive) */</p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Mathematical Introduction to Robotic Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
{{external links}}<br />
Welcome to {{SITENAME}}. This is the wiki for the text ''A Mathematical Introduction to Robotic Manipulation'' by Richard Murray, Zexiang Li and Shankar Sastry. On this site you will find information on the {{current version|current version}} of the book as well as additional [[Additional Examples|examples]], [[Additional Exercises|exercises]], and [[Frequently Asked Questions|frequently asked questions]] (coming soon).<br />
<br />
''This site is currently under construction and some links may not be functional.''<br />
<br />
===== News ([[Archived news|archive]]) =====<br />
* 20 Jan 2020: The publisher has decided that the PDF for this book can no longer be made available online.<br />
* 22 Jul 09: Chapter pages are getting set up (with summaries)<br />
* 25 Jun 09: The [[first edition]] PDF is now available online<br />
* 12 Jun 09: initial wiki creation<br />
<p><br />
<br />
=== Contents ===<br />
{| width=100% border=1 <br />
|- valign=top<br />
| width=50% |<br />
* {{ch:Preface}}<br />
* {{ch:Introduction}}<br />
* {{ch:Rigid Body Motion}}<br />
* {{ch:Manipulator Kinematics}}<br />
* {{ch:Robot Dynamics and Control}}<br />
* {{ch:Multifingered Hand Kinematics}}<br />
| width=50% |<br />
* {{ch:Hand Dynamics and Control}}<br />
* {{ch:Nonholonomic Behavior in Robotic Systems}}<br />
* {{ch:Nonholonomic Motion Planning}}<br />
* {{ch:Future Directions}}<br />
* {{ch:Lie Groups and Robot Kinematics}}<br />
* [[Bibliography]] and [[Index]]<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=First_edition&diff=1616First edition2021-01-24T07:08:34Z<p>Murray: </p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Mathematical Introduction to Robotic Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
<center><br />
'''Note: The publisher has decided that the PDF version of the book can no longer be posted for individual use. Those links are now broken.'''<br />
</center><br />
<br />
This page contains information on the first edition of {{MLS title}}. <br />
* {{MLS pdf|mls94-complete.pdf|Complete PDF for first edition}} (2.7M)<br />
The electronic edition of ''A Mathematical Introduction to Robotic Manipulation'' is provided with the permission of the publisher, CRC Press. This manuscript is for personal use only and may not be reproduced, in whole or in part, without written consent from the publisher.<br />
<br />
<br />
Additional information<br />
* [[Abstract (first edition)|Abstract]]: short description of the book plus ordering information<br />
* [[Table of Contents (first edition)|Table of Contents]]: complete table of contents for the book<br />
* [[Preface (first edition)|Preface]]: information on what the book is about and who its for<br />
* [[Software]]: Archive of MLS software.<br />
* Errata:<br />
** [[Media:errata-e1.pdf|Errata sheet]]: latest list of known errors (PDF file)<br />
** [[Media:pdctrl-proof.pdf|Corrected proof]] for the PD controller in Section 5 of Chapter 4.<br />
** {{submitbug|Error report form}}: forms-based error reporting.</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=First_edition&diff=1615First edition2021-01-21T21:17:30Z<p>Murray: </p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Mathematical Introduction to Robotic Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
<center><br />
'''Note: The publisher has determined that the PDF version of the book can no longer be posted for individual use. Those links are now broken.'''<br />
</center><br />
<br />
This page contains information on the first edition of {{MLS title}}. <br />
* {{MLS pdf|mls94-complete.pdf|Complete PDF for first edition}} (2.7M)<br />
The electronic edition of ''A Mathematical Introduction to Robotic Manipulation'' is provided with the permission of the publisher, CRC Press. This manuscript is for personal use only and may not be reproduced, in whole or in part, without written consent from the publisher.<br />
<br />
<br />
Additional information<br />
* [[Abstract (first edition)|Abstract]]: short description of the book plus ordering information<br />
* [[Table of Contents (first edition)|Table of Contents]]: complete table of contents for the book<br />
* [[Preface (first edition)|Preface]]: information on what the book is about and who its for<br />
* [[Software]]: Archive of MLS software.<br />
* Errata:<br />
** [[Media:errata-e1.pdf|Errata sheet]]: latest list of known errors (PDF file)<br />
** [[Media:pdctrl-proof.pdf|Corrected proof]] for the PD controller in Section 5 of Chapter 4.<br />
** {{submitbug|Error report form}}: forms-based error reporting.</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=First_edition&diff=1614First edition2021-01-21T21:17:05Z<p>Murray: </p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Mathematical Introduction to Robotic Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
'''Note: The publisher has determined that the PDF version of the book can no longer be posted for individual use. Those links are now broken.'''<br />
<br />
This page contains information on the first edition of {{MLS title}}. <br />
* {{MLS pdf|mls94-complete.pdf|Complete PDF for first edition}} (2.7M)<br />
The electronic edition of ''A Mathematical Introduction to Robotic Manipulation'' is provided with the permission of the publisher, CRC Press. This manuscript is for personal use only and may not be reproduced, in whole or in part, without written consent from the publisher.<br />
<br />
<br />
Additional information<br />
* [[Abstract (first edition)|Abstract]]: short description of the book plus ordering information<br />
* [[Table of Contents (first edition)|Table of Contents]]: complete table of contents for the book<br />
* [[Preface (first edition)|Preface]]: information on what the book is about and who its for<br />
* [[Software]]: Archive of MLS software.<br />
* Errata:<br />
** [[Media:errata-e1.pdf|Errata sheet]]: latest list of known errors (PDF file)<br />
** [[Media:pdctrl-proof.pdf|Corrected proof]] for the PD controller in Section 5 of Chapter 4.<br />
** {{submitbug|Error report form}}: forms-based error reporting.</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=First_edition&diff=1613First edition2021-01-21T21:16:50Z<p>Murray: </p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Mathematical Introduction to Robotic Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
Note: The publisher has determined that the PDF version of the book can no longer be posted for individual use. Those links are now broken.<br />
<br />
This page contains information on the first edition of {{MLS title}}. <br />
* {{MLS pdf|mls94-complete.pdf|Complete PDF for first edition}} (2.7M)<br />
The electronic edition of ''A Mathematical Introduction to Robotic Manipulation'' is provided with the permission of the publisher, CRC Press. This manuscript is for personal use only and may not be reproduced, in whole or in part, without written consent from the publisher.<br />
<br />
<br />
Additional information<br />
* [[Abstract (first edition)|Abstract]]: short description of the book plus ordering information<br />
* [[Table of Contents (first edition)|Table of Contents]]: complete table of contents for the book<br />
* [[Preface (first edition)|Preface]]: information on what the book is about and who its for<br />
* [[Software]]: Archive of MLS software.<br />
* Errata:<br />
** [[Media:errata-e1.pdf|Errata sheet]]: latest list of known errors (PDF file)<br />
** [[Media:pdctrl-proof.pdf|Corrected proof]] for the PD controller in Section 5 of Chapter 4.<br />
** {{submitbug|Error report form}}: forms-based error reporting.</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=First_edition&diff=1612First edition2015-07-18T00:33:52Z<p>Murray: </p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Mathematical Introduction to Robotic Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
This page contains information on the first edition of {{MLS title}}. <br />
* {{MLS pdf|mls94-complete.pdf|Complete PDF for first edition}} (2.7M)<br />
The electronic edition of ''A Mathematical Introduction to Robotic Manipulation'' is provided with the permission of the publisher, CRC Press. This manuscript is for personal use only and may not be reproduced, in whole or in part, without written consent from the publisher.<br />
<br />
<br />
Additional information<br />
* [[Abstract (first edition)|Abstract]]: short description of the book plus ordering information<br />
* [[Table of Contents (first edition)|Table of Contents]]: complete table of contents for the book<br />
* [[Preface (first edition)|Preface]]: information on what the book is about and who its for<br />
* [[Software]]: Archive of MLS software.<br />
* Errata:<br />
** [[Media:errata-e1.pdf|Errata sheet]]: latest list of known errors (PDF file)<br />
** [[Media:pdctrl-proof.pdf|Corrected proof]] for the PD controller in Section 5 of Chapter 4.<br />
** {{submitbug|Error report form}}: forms-based error reporting.</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:Righttoc&diff=1611Template:Righttoc2012-08-11T16:19:04Z<p>Murray: </p>
<hr />
<div><table style="float: right"><tr><td>__TOC__</td></tr></table></div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:Submitbug_right&diff=1610Template:Submitbug right2012-08-11T16:18:20Z<p>Murray: </p>
<hr />
<div>{| style="float: right"<br />
|-<br />
|<br />
{| border=1<br />
|-<br />
|<br />
{{submitbug}}<br />
|}<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:External_links&diff=1609Template:External links2012-08-11T16:16:05Z<p>Murray: </p>
<hr />
<div>{| style="float: right"<br />
|-<br />
|<br />
{| border=1 <br />
|-<br />
|<br />
===== Obtaining MLS =====<br />
* {{current version|Free download (pdf)}}<br />
* [[http:www.crcpress.com/product/isbn/9780849379819|Publisher (CRC Press)]]<br />
* [[http:www.amazon.com/Mathematical-Introduction-Robotic-Manipulation/dp/0849379814|Amazon]]<br />
* [[http:search.barnesandnoble.com/A-Mathematical-Introduction-to-Robotic-Manipulation/Richard-M-Murray/e/9780849379819|Barnes and Noble]]<br />
* [http://books.google.com/books/?id=D_PqGKRo7oIC Google Books]<br />
|}<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:External_links&diff=1608Template:External links2012-08-11T16:15:55Z<p>Murray: </p>
<hr />
<div>{| sytyle="float: right"<br />
|-<br />
|<br />
{| border=1 <br />
|-<br />
|<br />
===== Obtaining MLS =====<br />
* {{current version|Free download (pdf)}}<br />
* [[http:www.crcpress.com/product/isbn/9780849379819|Publisher (CRC Press)]]<br />
* [[http:www.amazon.com/Mathematical-Introduction-Robotic-Manipulation/dp/0849379814|Amazon]]<br />
* [[http:search.barnesandnoble.com/A-Mathematical-Introduction-to-Robotic-Manipulation/Richard-M-Murray/e/9780849379819|Barnes and Noble]]<br />
* [http://books.google.com/books/?id=D_PqGKRo7oIC Google Books]<br />
|}<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Second_edition&diff=1607Second edition2011-08-13T20:13:42Z<p>Murray: </p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Geometric Introduction to Robotics and Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>Second Edition</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
This page contains information on the second edition of {{MLS title}}. This book is currently being written and is expected to be available from CRC Press in 2012.<br />
<br />
=== Table of Contents ===<br />
<br />
New sections (or those containing substantial new material) are marked in <font color=blue>blue</font>. Tentative sections for inclusion in the second edition are marked in <font color=red>red</font>.<br />
<br />
Chapter 1. Introduction<br />
# <font color=blue>Early History of Robotics</font><br />
# <font color=blue>Recent History of Robotics</font><br />
# Geometric Methods in Robotics<br />
# Outline of the Book<br />
# Bibliography<br />
<br />
Chapter 2. Rigid Body Motion<br />
# Rigid Body Transformations<br />
# Rotational Motion in R^3<br />
# Rigid Motion in R^3<br />
# Velocity of a Rigid Body<br />
# <font color=blue>Wrenches and Reciprocal Screws</font><br />
# Summary<br />
# Exercises<br />
<br />
Chapter 3. Manipulator Kinematics<br />
# Introduction<br />
# Forward Kinematics<br />
# Inverse Kinematics<br />
# The Manipulator Jacobian<br />
# <font color=blue>Redundant Manipulators</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Chapter 4. Manipulator Dynamics<br />
# Introduction<br />
# Lagrange's Equations<br />
# Dynamics of Open-Chain Manipulators<br />
# <font color=blue>Coordinate Invariant Algorithms</font><br />
# <font color=blue>Lagrange's Equations with Constraints</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 5. Manipulator Control</font><br />
# Introduction<br />
# <font color=blue>Trajectory Generation</font><br />
# <font color=blue>Position Control and Trajectory Tracking</font><br />
# <font color=blue>Control of Constrained Manipulators</font><br />
# <font color=red>PD Control on Lie Groups*</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 6. Parallel Manipulators<br />
# Introduction<br />
# Configuration Space and Singularities<br />
# Singularity Classification<br />
# Dynamics and Control<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 7. Mechanism Synthesis and Design<br />
# Introduction<br />
# Constrained Rigid Motions<br />
# Synthesis of Open-Chain Manipulators<br />
# Synthesis of Parallel Manipulators<br />
# Mechanism Design<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 8. Multifingered Grasping and Manipulation</font><br />
# Introduction to Grasping<br />
# Grasp Statics<br />
# Force-Closure<br />
# Grasp Planning<br />
# Grasp constraints<br />
# Kinematics of Contact<br />
# <font color=blue>Hand KInematics</font><br />
# <font color=blue>Grasp Force Optimization</font><br />
# <font color=blue>Coordinated Control</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 9. Nonholonomic Systems and Motion Planning</font><br />
# Introduction<br />
# Controllability and the Frobenius theorem<br />
# Examples of Nonholonomic Systems<br />
# <font color=blue>Nonholonomic Planning Using Differential Flatness</font><br />
# <font color=red>Locomotion Systems</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Appendix A. Lie Groups and Robot Kinematics<br />
# Differentiable Manifolds<br />
# Lie Groups<br />
# The Geometry of the Euclidean Group<br />
<br />
Appendix B. Lyapunov Stability Theory</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Second_edition&diff=1606Second edition2011-08-08T02:19:41Z<p>Murray: /* Table of Contents */</p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Geometric Introduction to Robotics and Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>Second Edition</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
This page contains information on the second edition of {{MLS title}}. This book is currently being written and is expected to be available from CRC Press in 2012.<br />
<br />
=== Table of Contents ===<br />
<br />
New sections (or those containing substantial new material) are marked in <font color=blue>blue</font>. Tentative sections for inclusion in the second edition are marked in <font color=red>red</font>.<br />
<br />
Chapter 1. Introduction<br />
# <font color=blue>Early History of Robotics</font><br />
# <font color=blue>Recent History of Robotics</font><br />
# Outline of the Book<br />
# Bibliography<br />
<br />
Chapter 2. Rigid Body Motion<br />
# Rigid Body Transformations<br />
# Rotational Motion in R^3<br />
# Rigid Motion in R^3<br />
# Velocity of a Rigid Body<br />
# <font color=blue>Wrenches and Reciprocal Screws</font><br />
# Summary<br />
# Exercises<br />
<br />
Chapter 3. Manipulator Kinematics<br />
# Introduction<br />
# Forward Kinematics<br />
# Inverse Kinematics<br />
# The Manipulator Jacobian<br />
# <font color=blue>Redundant Manipulators</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Chapter 4. Manipulator Dynamics<br />
# Introduction<br />
# Lagrange's Equations<br />
# Dynamics of Open-Chain Manipulators<br />
# <font color=blue>Coordinate Invariant Algorithms</font><br />
# <font color=blue>Lagrange's Equations with Constraints</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 5. Manipulator Control</font><br />
# Introduction<br />
# <font color=blue>Trajectory Generation</font><br />
# <font color=blue>Position Control and Trajectory Tracking</font><br />
# <font color=blue>Control of Constrained Manipulators</font><br />
# <font color=red>PD Control on Lie Groups*</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 6. Parallel Manipulators<br />
# Introduction<br />
# Configuration Space and Singularities<br />
# Singularity Classification<br />
# Dynamics and Control<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 7. Mechanism Synthesis and Design<br />
# Introduction<br />
# Constrained Rigid Motions<br />
# Synthesis of Open-Chain Manipulators<br />
# Synthesis of Parallel Manipulators<br />
# Mechanism Design<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 8. Multifingered Grasping and Manipulation</font><br />
# Introduction to Grasping<br />
# Grasp Statics<br />
# Force-Closure<br />
# Grasp Planning<br />
# Grasp constraints<br />
# Kinematics of Contact<br />
# <font color=blue>Hand KInematics</font><br />
# <font color=blue>Grasp Force Optimization</font><br />
# <font color=blue>Coordinated Control</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 9. Nonholonomic Systems and Motion Planning</font><br />
# Introduction<br />
# Controllability and the Frobenius theorem<br />
# Examples of Nonholonomic Systems<br />
# <font color=blue>Nonholonomic Planning Using Differential Flatness</font><br />
# <font color=red>Locomotion Systems</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Appendix A. Lie Groups and Robot Kinematics<br />
# Differentiable Manifolds<br />
# Lie Groups<br />
# The Geometry of the Euclidean Group<br />
<br />
Appendix B. Lyapunov Stability Theory</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Second_edition&diff=1605Second edition2011-08-08T02:19:19Z<p>Murray: /* Table of Contents */</p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Geometric Introduction to Robotics and Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>Second Edition</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
This page contains information on the second edition of {{MLS title}}. This book is currently being written and is expected to be available from CRC Press in 2012.<br />
<br />
=== Table of Contents ===<br />
<br />
New sections (or those containing substantial new material) are marked in <font color=blue>blue</font>. Tentative sections for inclusion in the second edition are marked in <font color=red>red</font>.<br />
<br />
Chapter 1. Introduction<br />
# <font color=blue>Early History of Robotics</font><br />
# <font color=blue>Recent History of Robotics</font><br />
# Outline of the Book<br />
# Bibliography<br />
<br />
Chapter 2. Rigid Body Motion<br />
# Rigid Body Transformations<br />
# Rotational Motion in R^3<br />
# Rigid Motion in R^3<br />
# Velocity of a Rigid Body<br />
# <font color=blue>Wrenches and Reciprocal Screws</font><br />
# Summary<br />
# Exercises<br />
<br />
Chapter 3. Manipulator Kinematics<br />
# Introduction<br />
# Forward Kinematics<br />
# Inverse Kinematics<br />
# The Manipulator Jacobian<br />
# <font color=blue>Redundant Manipulators</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Chapter 4. Manipulator Dynamics<br />
# Introduction<br />
# Lagrange's Equations<br />
# Dynamics of Open-Chain Manipulators<br />
# <font color=blue>Coordinate Invariant Algorithms</font><br />
# <font color=blue>Lagrange's Equations with Constraints</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 5. Manipulator Control</font><br />
# Introduction<br />
# <font color=blue>Trajectory Generation</font><br />
# <font color=blue>Position Control and Trajectory Tracking</font><br />
# <font color=blue>Control of Constrained Manipulators</font><br />
# <font color=red>PD Control on Lie Groups*</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 6. Parallel Manipulators<br />
# Introduction<br />
# Configuration Space and Singularities<br />
# Singularity Classification<br />
# Dynamics and Control<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 7. Mechanism Synthesis and Design<br />
# Introduction<br />
# Constrained Rigid Motions<br />
# Synthesis of Open-Chain Manipulators<br />
# Synthesis of Parallel Manipulators<br />
# Mechanism Design<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 8. Multifingered Grasping and Manipulation</font><br />
# Introduction to Grasping<br />
# Grasp Statics<br />
# Force-Closure<br />
# Grasp Planning<br />
# Grasp constraints<br />
# Kinematics of Contact<br />
# <font color=blue>Hand KInematics</font><br />
# <font color=blue>Grasp Force Optimization</font><br />
# <font color=blue>Coordinated Control</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 9. Nonholonomic Systems and Motion Planning</font><br />
# Introduction<br />
# Controllability and the Frobenius theorem<br />
# Examples of Nonholonomic Systems<br />
# <font color=blue>Nonholonomic Planning Using Differential Flatness</font><br />
# <font color=blue>Locomotion Systems</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Appendix A. Lie Groups and Robot Kinematics<br />
# Differentiable Manifolds<br />
# Lie Groups<br />
# The Geometry of the Euclidean Group<br />
<br />
Appendix B. Lyapunov Stability Theory</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Second_edition&diff=1604Second edition2011-08-08T02:19:01Z<p>Murray: /* Table of Contents */</p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Geometric Introduction to Robotics and Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>Second Edition</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
This page contains information on the second edition of {{MLS title}}. This book is currently being written and is expected to be available from CRC Press in 2012.<br />
<br />
=== Table of Contents ===<br />
<br />
New sections (or those containing substantial new material) are marked in <font color=blue>blue</font>. Tentative sections for inclusion in the second edition are marked in <font color=red>red</font>.<br />
<br />
Chapter 1. Introduction<br />
</font># <font color=blue>Early History of Robotics</font><br />
</font># <font color=blue>Recent History of Robotics</font><br />
# Outline of the Book<br />
# Bibliography<br />
<br />
Chapter 2. Rigid Body Motion<br />
# Rigid Body Transformations<br />
# Rotational Motion in R^3<br />
# Rigid Motion in R^3<br />
# Velocity of a Rigid Body<br />
# <font color=blue>Wrenches and Reciprocal Screws</font><br />
# Summary<br />
# Exercises<br />
<br />
Chapter 3. Manipulator Kinematics<br />
# Introduction<br />
# Forward Kinematics<br />
# Inverse Kinematics<br />
# The Manipulator Jacobian<br />
# <font color=blue>Redundant Manipulators</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Chapter 4. Manipulator Dynamics<br />
# Introduction<br />
# Lagrange's Equations<br />
# Dynamics of Open-Chain Manipulators<br />
# <font color=blue>Coordinate Invariant Algorithms</font><br />
# <font color=blue>Lagrange's Equations with Constraints</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 5. Manipulator Control</font><br />
# Introduction<br />
# <font color=blue>Trajectory Generation</font><br />
# <font color=blue>Position Control and Trajectory Tracking</font><br />
# <font color=blue>Control of Constrained Manipulators</font><br />
# <font color=red>PD Control on Lie Groups*</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 6. Parallel Manipulators<br />
# Introduction<br />
# Configuration Space and Singularities<br />
# Singularity Classification<br />
# Dynamics and Control<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 7. Mechanism Synthesis and Design<br />
# Introduction<br />
# Constrained Rigid Motions<br />
# Synthesis of Open-Chain Manipulators<br />
# Synthesis of Parallel Manipulators<br />
# Mechanism Design<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 8. Multifingered Grasping and Manipulation</font><br />
# Introduction to Grasping<br />
# Grasp Statics<br />
# Force-Closure<br />
# Grasp Planning<br />
# Grasp constraints<br />
# Kinematics of Contact<br />
# <font color=blue>Hand KInematics</font><br />
# <font color=blue>Grasp Force Optimization</font><br />
# <font color=blue>Coordinated Control</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 9. Nonholonomic Systems and Motion Planning</font><br />
# Introduction<br />
# Controllability and the Frobenius theorem<br />
# Examples of Nonholonomic Systems<br />
# <font color=blue>Nonholonomic Planning Using Differential Flatness</font><br />
# <font color=blue>Locomotion Systems</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Appendix A. Lie Groups and Robot Kinematics<br />
# Differentiable Manifolds<br />
# Lie Groups<br />
# The Geometry of the Euclidean Group<br />
<br />
Appendix B. Lyapunov Stability Theory</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Second_edition&diff=1603Second edition2011-08-08T02:06:31Z<p>Murray: </p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Geometric Introduction to Robotics and Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>Second Edition</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
This page contains information on the second edition of {{MLS title}}. This book is currently being written and is expected to be available from CRC Press in 2012.<br />
<br />
=== Table of Contents ===<br />
<br />
New sections (or those containing substantial new material) are marked in <font color=blue>blue</font>. Tentative sections for inclusion in the second edition are marked in <font color=red>red</font>.<br />
<br />
Chapter 1. Introduction<br />
# <font color=blue>Brief History</font><br />
# Outline of the Book<br />
# Bibliography<br />
<br />
Chapter 2. Rigid Body Motion<br />
# Rigid Body Transformations<br />
# Rotational Motion in R^3<br />
# Rigid Motion in R^3<br />
# Velocity of a Rigid Body<br />
# <font color=blue>Wrenches and Reciprocal Screws</font><br />
# Summary<br />
# Exercises<br />
<br />
Chapter 3. Manipulator Kinematics<br />
# Introduction<br />
# Forward Kinematics<br />
# Inverse Kinematics<br />
# The Manipulator Jacobian<br />
# <font color=blue>Redundant Manipulators</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Chapter 4. Manipulator Dynamics<br />
# Introduction<br />
# Lagrange's Equations<br />
# Dynamics of Open-Chain Manipulators<br />
# <font color=blue>Coordinate Invariant Algorithms</font><br />
# <font color=blue>Lagrange's Equations with Constraints</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 5. Manipulator Control</font><br />
# Introduction<br />
# <font color=blue>Trajectory Generation</font><br />
# <font color=blue>Position Control and Trajectory Tracking</font><br />
# <font color=blue>Control of Constrained Manipulators</font><br />
# <font color=red>PD Control on Lie Groups*</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 6. Parallel Manipulators<br />
# Introduction<br />
# Configuration Space and Singularities<br />
# Singularity Classification<br />
# Dynamics and Control<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 7. Mechanism Synthesis and Design<br />
# Introduction<br />
# Constrained Rigid Motions<br />
# Synthesis of Open-Chain Manipulators<br />
# Synthesis of Parallel Manipulators<br />
# Mechanism Design<br />
# Bibliography<br />
# Exercises<br />
</font><br />
<br />
<font color=blue>Chapter 8. Multifingered Grasping and Manipulation</font><br />
# Introduction to Grasping<br />
# Grasp Statics<br />
# Force-Closure<br />
# Grasp Planning<br />
# Grasp constraints<br />
# Kinematics of Contact<br />
# <font color=blue>Hand KInematics</font><br />
# <font color=blue>Grasp Force Optimization</font><br />
# <font color=blue>Coordinated Control</font><br />
# Bibliography<br />
# Exercises<br />
<br />
<font color=blue>Chapter 9. Nonholonomic Systems and Motion Planning</font><br />
# Introduction<br />
# Controllability and the Frobenius theorem<br />
# Examples of Nonholonomic Systems<br />
# <font color=blue>Nonholonomic Planning Using Differential Flatness</font><br />
# <font color=blue>Locomotion Systems</font><br />
# Bibliography<br />
# Exercises<br />
<br />
Appendix A. Lie Groups and Robot Kinematics<br />
# Differentiable Manifolds<br />
# Lie Groups<br />
# The Geometry of the Euclidean Group<br />
<br />
Appendix B. Lyapunov Stability Theory</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Second_edition&diff=1602Second edition2011-08-08T01:52:08Z<p>Murray: Created page with '<table width="100%"> <tr><td align=center> <font color='blue' size='+2'>A Geometric Introduction to Robotics and Manipulation</font></td></tr> <tr><td align=center height="40"><f…'</p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Geometric Introduction to Robotics and Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>Second Edition</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
This page contains information on the second edition of {{MLS title}}.</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Sandbox&diff=1601Sandbox2010-03-30T00:06:43Z<p>Murray: </p>
<hr />
<div><math>x = 45 y</math><br />
<amsmath>b</amsmath></div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Sandbox&diff=1600Sandbox2010-03-30T00:05:52Z<p>Murray: </p>
<hr />
<div><math>x = 4 y</math><br />
<amsmath>b</amsmath></div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Sandbox&diff=1599Sandbox2010-03-30T00:05:19Z<p>Murray: </p>
<hr />
<div><math>x = 3 y</math><br />
<amsmath>b</amsmath></div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Hand_Dynamics_and_Control&diff=1598Hand Dynamics and Control2010-03-28T20:14:40Z<p>Murray: /* Chapter Summary */</p>
<hr />
<div>{{chapter header|Multifingered Hand Kinematics|Hand Dynamics and Control|Nonholonomic Behavior}}<br />
<br />
In this chapter, we study the dynamics and control of a set of robots<br />
performing a coordinated task. Our primary example will be that of a<br />
multifingered robot hand manipulating an object, but the formalism is<br />
considerably broader. It allows a unified treatment of dynamics and<br />
control of robot systems subject to a set of velocity constraints,<br />
generalizing the treatment given in Chapter 4.<br />
<br />
== Chapter Summary ==<br />
<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li> The dynamics of a mechanical system with Lagrangian <amsmath>L(q, \dot<br />
q)</amsmath>, subject to a set of ''Pfaffian constraints'' of the form<br />
<blockquote><center><amsmath><br />
A(q) \dot q = 0 \qquad A(q) \in {\mathbb R}^{k \times n},<br />
</amsmath></center></blockquote><br />
can be written as<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q} - \frac{\partial L}{\partial q} + A^T(q) \lambda - \Upsilon = 0,<br />
</amsmath></center><br />
where <amsmath>\lambda \in {\mathbb R}^k</amsmath> is the vector of ''Lagrange multipliers''.<br />
The values of the Lagrange multipliers are given by<br />
<center><amsmath><br />
\lambda = <br />
(A M^{-1} A^T)^{-1} \left(<br />
A M^{-1}(F - C\dot q - N) + \dot A \dot q<br />
\right).<br />
</amsmath></center><br />
</li><br />
<br />
<li> The ''Lagrange-d'Alembert formulation'' of the dynamics<br />
represents the motion of the system by projecting the equations of<br />
motion onto the subspace of allowable motions. If <amsmath>q = (q_1, q_2) \in<br />
{\mathbb R}^{(n-k) \times k}</amsmath> and the constraints have the form<br />
<center><amsmath><br />
\dot q_2 = {\cal A}(q) \dot q_1,<br />
</amsmath></center><br />
then the equations of motion can be written as<br />
<center><amsmath><br />
\left(\frac{d}{dt} \frac{\partial L}{\partial \dot q_1} - \frac{\partial L}{\partial q_1} - \Upsilon_1\right) +<br />
{\cal A}^T \left(\frac{d}{dt} \frac{\partial L}{\partial \dot q_1} - \frac{\partial L}{\partial q_2} -<br />
\Upsilon_2\right) <br />
= 0.<br />
</amsmath></center><br />
In the special case that the constraint is integrable, these equations<br />
agree with those obtained by substituting the constraint into the<br />
Lagrangian and then using the unconstrained version of Lagrange's<br />
equations.<br />
</li><br />
<br />
<li> The dynamics for a ''multifingered robot hand'' with joint variables<br />
<amsmath>\theta \in {\mathbb R}^n</amsmath> and (local) object variables <amsmath>x \in {\mathbb R}^p</amsmath>,<br />
subject to the grasp constraint<br />
<center><amsmath><br />
J_h(\theta, x) \dot \theta = G^T(\theta, x) \dot x, <br />
</amsmath></center><br />
is given by<br />
<center><amsmath><br />
\tilde M(q) \ddot x + \tilde C(q, \dot q) \dot x + \tilde N(q, \dot<br />
q) = F,<br />
</amsmath></center><br />
where <amsmath>q = (\theta, x)</amsmath> and<br />
<center><amsmath><br />
\aligned <br />
\tilde{M} &= M_o + G J_h^{-T} M_f J_h^{-1} G^T \\<br />
\tilde{C} &= C_o + G J_h^{-T} \left(C_f J_h^{-1} G^T + <br />
M_f \frac{d}{dt} \left(J_h^{-1} G^T \right)\right) \\<br />
\tilde{N} &= N_o + G J_h^{-T} N_f \\<br />
F &= G J_h^{-T} \tau.<br />
\endaligned<br />
</amsmath></center><br />
These same equations can be applied to a large number of other robotic<br />
systems by choosing <amsmath>G</amsmath> and <amsmath>J_h</amsmath> appropriately.<br />
</li><br />
<br />
<li> For ''redundant'' and/or ''nonmanipulable'' robot systems,<br />
the hand Jacobian is not invertible, resulting in a more complicated<br />
derivation of the equations of motion. For redundant systems, the<br />
constraints can be extended to the form<br />
<center><amsmath><br />
\underbrace{\begin{bmatrix} J_h \\ K_h \end{bmatrix}}_{\bar J_h} \dot\theta =<br />
\underbrace{\begin{bmatrix} G^T & 0 \\ 0 & I \end{bmatrix}}_{\bar G^T} <br />
\begin{bmatrix} \dot x \\ v_N \end{bmatrix},<br />
</amsmath></center><br />
where the rows of <amsmath>K_h</amsmath> span the null space<br />
of <amsmath>J_h</amsmath>, and <amsmath>v_N</amsmath> represents the ''internal motions'' of <br />
the system. For nonmanipulable systems, we choose a matrix <amsmath>H</amsmath> which<br />
spans the space of allowable object trajectories and write the<br />
constraints as<br />
<center><amsmath><br />
J_h \dot\theta = \underbrace{G^T H}_{\bar G^T} w,<br />
</amsmath></center><br />
where <amsmath>\dot x = H(q) w</amsmath> represents the object velocity. In both the<br />
redundant and nonmanipulable cases, the augmented form of the<br />
constraints can be used to derive the equations of motion and put them<br />
into the standard form given above.<br />
</li><br />
<br />
<li> The kinematics of ''tendon-driven systems'' are described in terms<br />
of a set of ''extension functions'', <amsmath>h_i:Q \to {\mathbb R}</amsmath>, which measures<br />
the displacement of the tendon as a function of the joint angles of<br />
the system. If a vector of tendon forces <amsmath>f \in {\mathbb R}^k</amsmath> is applied<br />
at the end of the tendons, the resulting joint torques are given by<br />
<center><amsmath><br />
\tau = P(\theta) f,<br />
</amsmath></center><br />
where <amsmath>P(\theta) \in {\mathbb R}^{n \times p}</amsmath> is the ''coupling matrix'':<br />
<center><amsmath><br />
P(\theta) = \frac{\partial h}{\partial \theta}^T(\theta).<br />
</amsmath></center><br />
A tendon-system is said to be ''force-closure'' at a point <amsmath>\theta</amsmath><br />
if for every vector of joint torques, <amsmath>\tau</amsmath>, there exists a set of<br />
tendon forces which will generate those torques.<br />
</li><br />
<br />
<li> The equations of motion for a constrained robot system are<br />
described in terms of the quantities <amsmath>\tilde M(q)</amsmath>, <amsmath>\tilde C(q, \dot<br />
q)</amsmath>, and <amsmath>\tilde N(q, \dot q)</amsmath>. When correctly defined, the<br />
quantities satisfy the following properties:<br />
* <amsmath>\tilde M(q)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\Dot{\tilde M}(q) - 2 \tilde C</amsmath> is a skew-symmetric matrix.<br />
\end{enumerate}<br />
Using these properties it is possible to extend the controllers<br />
presented in Chapter~4 to the more general class of systems considered<br />
in this chapter. For a multifingered hand, an extended control law has<br />
the general form<br />
<center><amsmath><br />
\tau = J^T G^+ F + J^T f_N,<br />
</amsmath></center><br />
where <amsmath>F</amsmath> is the generalized force in object coordinates (determined by<br />
the control law) and <amsmath>f_N</amsmath> is an internal force. The internal forces<br />
must be chosen so as to insure that all contact forces remain inside<br />
the appropriate friction cone so that the fingers satisfy the<br />
fundamental grasp constraint at all times.<br />
</li><br />
</ol><br />
<br />
== Additional Information ==</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Hand_Dynamics_and_Control&diff=1597Hand Dynamics and Control2010-03-28T18:35:08Z<p>Murray: /* Chapter Summary */</p>
<hr />
<div>{{chapter header|Multifingered Hand Kinematics|Hand Dynamics and Control|Nonholonomic Behavior}}<br />
<br />
In this chapter, we study the dynamics and control of a set of robots<br />
performing a coordinated task. Our primary example will be that of a<br />
multifingered robot hand manipulating an object, but the formalism is<br />
considerably broader. It allows a unified treatment of dynamics and<br />
control of robot systems subject to a set of velocity constraints,<br />
generalizing the treatment given in Chapter 4.<br />
<br />
== Chapter Summary ==<br />
<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li> The dynamics of a mechanical system with Lagrangian <amsmath>L(q, \dot<br />
q)</amsmath>, subject to a set of ''Pfaffian constraints'' of the form<br />
<center><amsmath><br />
A(q) \dot q = 0 \qquad A(q) \in {\mathbb R}^{k \times n},<br />
</amsmath></center><br />
can be written as<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q} - \frac{\partial L}{\partial q} + A^T(q) \lambda - \Upsilon = 0,<br />
</amsmath></center><br />
where <amsmath>\lambda \in {\mathbb R}^k</amsmath> is the vector of ''Lagrange multipliers''.<br />
The values of the Lagrange multipliers are given by<br />
<center><amsmath><br />
\lambda = <br />
(A M^{-1} A^T)^{-1} \left(<br />
A M^{-1}(F - C\dot q - N) + \dot A \dot q<br />
\right).<br />
</amsmath></center><br />
</li><br />
<br />
<li> The ''Lagrange-d'Alembert formulation'' of the dynamics<br />
represents the motion of the system by projecting the equations of<br />
motion onto the subspace of allowable motions. If <amsmath>q = (q_1, q_2) \in<br />
{\mathbb R}^{(n-k) \times k}</amsmath> and the constraints have the form<br />
<center><amsmath><br />
\dot q_2 = {\cal A}(q) \dot q_1,<br />
</amsmath></center><br />
then the equations of motion can be written as<br />
<center><amsmath><br />
\left(\frac{d}{dt} \frac{\partial L}{\partial \dot q_1} - \frac{\partial L}{\partial q_1} - \Upsilon_1\right) +<br />
{\cal A}^T \left(\frac{d}{dt} \frac{\partial L}{\partial \dot q_1} - \frac{\partial L}{\partial q_2} -<br />
\Upsilon_2\right) <br />
= 0.<br />
</amsmath></center><br />
In the special case that the constraint is integrable, these equations<br />
agree with those obtained by substituting the constraint into the<br />
Lagrangian and then using the unconstrained version of Lagrange's<br />
equations.<br />
</li><br />
<br />
<li> The dynamics for a ''multifingered robot hand'' with joint variables<br />
<amsmath>\theta \in {\mathbb R}^n</amsmath> and (local) object variables <amsmath>x \in {\mathbb R}^p</amsmath>,<br />
subject to the grasp constraint<br />
<center><amsmath><br />
J_h(\theta, x) \dot \theta = G^T(\theta, x) \dot x, <br />
</amsmath></center><br />
is given by<br />
<center><amsmath><br />
\tilde M(q) \ddot x + \tilde C(q, \dot q) \dot x + \tilde N(q, \dot<br />
q) = F,<br />
</amsmath></center><br />
where <amsmath>q = (\theta, x)</amsmath> and<br />
<center><amsmath><br />
\aligned <br />
\tilde{M} &= M_o + G J_h^{-T} M_f J_h^{-1} G^T \\<br />
\tilde{C} &= C_o + G J_h^{-T} \left(C_f J_h^{-1} G^T + <br />
M_f \frac{d}{dt} \left(J_h^{-1} G^T \right)\right) \\<br />
\tilde{N} &= N_o + G J_h^{-T} N_f \\<br />
F &= G J_h^{-T} \tau.<br />
\endaligned<br />
</amsmath></center><br />
These same equations can be applied to a large number of other robotic<br />
systems by choosing <amsmath>G</amsmath> and <amsmath>J_h</amsmath> appropriately.<br />
</li><br />
<br />
<li> For ''redundant'' and/or ''nonmanipulable'' robot systems,<br />
the hand Jacobian is not invertible, resulting in a more complicated<br />
derivation of the equations of motion. For redundant systems, the<br />
constraints can be extended to the form<br />
<center><amsmath><br />
\underbrace{\begin{bmatrix} J_h \\ K_h \end{bmatrix}}_{\bar J_h} \dot\theta =<br />
\underbrace{\begin{bmatrix} G^T & 0 \\ 0 & I \end{bmatrix}}_{\bar G^T} <br />
\begin{bmatrix} \dot x \\ v_N \end{bmatrix},<br />
</amsmath></center><br />
where the rows of <amsmath>K_h</amsmath> span the null space<br />
of <amsmath>J_h</amsmath>, and <amsmath>v_N</amsmath> represents the ''internal motions'' of <br />
the system. For nonmanipulable systems, we choose a matrix <amsmath>H</amsmath> which<br />
spans the space of allowable object trajectories and write the<br />
constraints as<br />
<center><amsmath><br />
J_h \dot\theta = \underbrace{G^T H}_{\bar G^T} w,<br />
</amsmath></center><br />
where <amsmath>\dot x = H(q) w</amsmath> represents the object velocity. In both the<br />
redundant and nonmanipulable cases, the augmented form of the<br />
constraints can be used to derive the equations of motion and put them<br />
into the standard form given above.<br />
</li><br />
<br />
<li> The kinematics of ''tendon-driven systems'' are described in terms<br />
of a set of ''extension functions'', <amsmath>h_i:Q \to {\mathbb R}</amsmath>, which measures<br />
the displacement of the tendon as a function of the joint angles of<br />
the system. If a vector of tendon forces <amsmath>f \in {\mathbb R}^k</amsmath> is applied<br />
at the end of the tendons, the resulting joint torques are given by<br />
<center><amsmath><br />
\tau = P(\theta) f,<br />
</amsmath></center><br />
where <amsmath>P(\theta) \in {\mathbb R}^{n \times p}</amsmath> is the ''coupling matrix'':<br />
<center><amsmath><br />
P(\theta) = \frac{\partial h}{\partial \theta}^T(\theta).<br />
</amsmath></center><br />
A tendon-system is said to be ''force-closure'' at a point <amsmath>\theta</amsmath><br />
if for every vector of joint torques, <amsmath>\tau</amsmath>, there exists a set of<br />
tendon forces which will generate those torques.<br />
</li><br />
<br />
<li> The equations of motion for a constrained robot system are<br />
described in terms of the quantities <amsmath>\tilde M(q)</amsmath>, <amsmath>\tilde C(q, \dot<br />
q)</amsmath>, and <amsmath>\tilde N(q, \dot q)</amsmath>. When correctly defined, the<br />
quantities satisfy the following properties:<br />
* <amsmath>\tilde M(q)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\Dot{\tilde M}(q) - 2 \tilde C</amsmath> is a skew-symmetric matrix.<br />
\end{enumerate}<br />
Using these properties it is possible to extend the controllers<br />
presented in Chapter~4 to the more general class of systems considered<br />
in this chapter. For a multifingered hand, an extended control law has<br />
the general form<br />
<center><amsmath><br />
\tau = J^T G^+ F + J^T f_N,<br />
</amsmath></center><br />
where <amsmath>F</amsmath> is the generalized force in object coordinates (determined by<br />
the control law) and <amsmath>f_N</amsmath> is an internal force. The internal forces<br />
must be chosen so as to insure that all contact forces remain inside<br />
the appropriate friction cone so that the fingers satisfy the<br />
fundamental grasp constraint at all times.<br />
</li><br />
</ol><br />
<br />
== Additional Information ==</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Hand_Dynamics_and_Control&diff=1596Hand Dynamics and Control2010-03-28T18:34:49Z<p>Murray: /* Chapter Summary */</p>
<hr />
<div>{{chapter header|Multifingered Hand Kinematics|Hand Dynamics and Control|Nonholonomic Behavior}}<br />
<br />
In this chapter, we study the dynamics and control of a set of robots<br />
performing a coordinated task. Our primary example will be that of a<br />
multifingered robot hand manipulating an object, but the formalism is<br />
considerably broader. It allows a unified treatment of dynamics and<br />
control of robot systems subject to a set of velocity constraints,<br />
generalizing the treatment given in Chapter 4.<br />
<br />
== Chapter Summary ==<br />
<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li> The dynamics of a mechanical system with Lagrangian <amsmath>L(q, \dot<br />
q)</amsmath>, subject to a set of ''Pfaffian constraints'' of the form<br />
<center><amsmath><br />
A(q) \dot q = 0 \qquad A(q) \in {\mathbb R}^{k \times n},<br />
</amsmath></center><br />
can be written as<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q} - \frac{\partial L}{\partial q} + A^T(q) \lambda - \Upsilon = 0,<br />
</amsmath></center><br />
where <amsmath>\lambda \in {\mathbb R}^k</amsmath> is the vector of ''Lagrange multipliers''.<br />
The values of the Lagrange multipliers are given by<br />
<center><amsmath><br />
\lambda = <br />
(A M^{-1} A^T)^{-1} \left(<br />
A M^{-1}(F - C\dot q - N) + \dot A \dot q<br />
\right).<br />
</amsmath></center><br />
</li><br />
<br />
<li> The ''Lagrange-d'Alembert formulation'' of the dynamics<br />
represents the motion of the system by projecting the equations of<br />
motion onto the subspace of allowable motions. If <amsmath>q = (q_1, q_2) \in<br />
{\mathbb R}^{(n-k) \times k}</amsmath> and the constraints have the form<br />
<center><amsmath><br />
\dot q_2 = {\cal A(q)} \dot q_1,<br />
</amsmath></center><br />
then the equations of motion can be written as<br />
<center><amsmath><br />
\left(\frac{d}{dt} \frac{\partial L}{\partial \dot q_1} - \frac{\partial L}{\partial q_1} - \Upsilon_1\right) +<br />
{\cal A}^T \left(\frac{d}{dt} \frac{\partial L}{\partial \dot q_1} - \frac{\partial L}{\partial q_2} -<br />
\Upsilon_2\right) <br />
= 0.<br />
</amsmath></center><br />
In the special case that the constraint is integrable, these equations<br />
agree with those obtained by substituting the constraint into the<br />
Lagrangian and then using the unconstrained version of Lagrange's<br />
equations.<br />
</li><br />
<br />
<li> The dynamics for a ''multifingered robot hand'' with joint variables<br />
<amsmath>\theta \in {\mathbb R}^n</amsmath> and (local) object variables <amsmath>x \in {\mathbb R}^p</amsmath>,<br />
subject to the grasp constraint<br />
<center><amsmath><br />
J_h(\theta, x) \dot \theta = G^T(\theta, x) \dot x, <br />
</amsmath></center><br />
is given by<br />
<center><amsmath><br />
\tilde M(q) \ddot x + \tilde C(q, \dot q) \dot x + \tilde N(q, \dot<br />
q) = F,<br />
</amsmath></center><br />
where <amsmath>q = (\theta, x)</amsmath> and<br />
<center><amsmath><br />
\aligned <br />
\tilde{M} &= M_o + G J_h^{-T} M_f J_h^{-1} G^T \\<br />
\tilde{C} &= C_o + G J_h^{-T} \left(C_f J_h^{-1} G^T + <br />
M_f \frac{d}{dt} \left(J_h^{-1} G^T \right)\right) \\<br />
\tilde{N} &= N_o + G J_h^{-T} N_f \\<br />
F &= G J_h^{-T} \tau.<br />
\endaligned<br />
</amsmath></center><br />
These same equations can be applied to a large number of other robotic<br />
systems by choosing <amsmath>G</amsmath> and <amsmath>J_h</amsmath> appropriately.<br />
</li><br />
<br />
<li> For ''redundant'' and/or ''nonmanipulable'' robot systems,<br />
the hand Jacobian is not invertible, resulting in a more complicated<br />
derivation of the equations of motion. For redundant systems, the<br />
constraints can be extended to the form<br />
<center><amsmath><br />
\underbrace{\begin{bmatrix} J_h \\ K_h \end{bmatrix}}_{\bar J_h} \dot\theta =<br />
\underbrace{\begin{bmatrix} G^T & 0 \\ 0 & I \end{bmatrix}}_{\bar G^T} <br />
\begin{bmatrix} \dot x \\ v_N \end{bmatrix},<br />
</amsmath></center><br />
where the rows of <amsmath>K_h</amsmath> span the null space<br />
of <amsmath>J_h</amsmath>, and <amsmath>v_N</amsmath> represents the ''internal motions'' of <br />
the system. For nonmanipulable systems, we choose a matrix <amsmath>H</amsmath> which<br />
spans the space of allowable object trajectories and write the<br />
constraints as<br />
<center><amsmath><br />
J_h \dot\theta = \underbrace{G^T H}_{\bar G^T} w,<br />
</amsmath></center><br />
where <amsmath>\dot x = H(q) w</amsmath> represents the object velocity. In both the<br />
redundant and nonmanipulable cases, the augmented form of the<br />
constraints can be used to derive the equations of motion and put them<br />
into the standard form given above.<br />
</li><br />
<br />
<li> The kinematics of ''tendon-driven systems'' are described in terms<br />
of a set of ''extension functions'', <amsmath>h_i:Q \to {\mathbb R}</amsmath>, which measures<br />
the displacement of the tendon as a function of the joint angles of<br />
the system. If a vector of tendon forces <amsmath>f \in {\mathbb R}^k</amsmath> is applied<br />
at the end of the tendons, the resulting joint torques are given by<br />
<center><amsmath><br />
\tau = P(\theta) f,<br />
</amsmath></center><br />
where <amsmath>P(\theta) \in {\mathbb R}^{n \times p}</amsmath> is the ''coupling matrix'':<br />
<center><amsmath><br />
P(\theta) = \frac{\partial h}{\partial \theta}^T(\theta).<br />
</amsmath></center><br />
A tendon-system is said to be ''force-closure'' at a point <amsmath>\theta</amsmath><br />
if for every vector of joint torques, <amsmath>\tau</amsmath>, there exists a set of<br />
tendon forces which will generate those torques.<br />
</li><br />
<br />
<li> The equations of motion for a constrained robot system are<br />
described in terms of the quantities <amsmath>\tilde M(q)</amsmath>, <amsmath>\tilde C(q, \dot<br />
q)</amsmath>, and <amsmath>\tilde N(q, \dot q)</amsmath>. When correctly defined, the<br />
quantities satisfy the following properties:<br />
* <amsmath>\tilde M(q)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\Dot{\tilde M}(q) - 2 \tilde C</amsmath> is a skew-symmetric matrix.<br />
\end{enumerate}<br />
Using these properties it is possible to extend the controllers<br />
presented in Chapter~4 to the more general class of systems considered<br />
in this chapter. For a multifingered hand, an extended control law has<br />
the general form<br />
<center><amsmath><br />
\tau = J^T G^+ F + J^T f_N,<br />
</amsmath></center><br />
where <amsmath>F</amsmath> is the generalized force in object coordinates (determined by<br />
the control law) and <amsmath>f_N</amsmath> is an internal force. The internal forces<br />
must be chosen so as to insure that all contact forces remain inside<br />
the appropriate friction cone so that the fingers satisfy the<br />
fundamental grasp constraint at all times.<br />
</li><br />
</ol><br />
<br />
== Additional Information ==</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Sandbox&diff=1595Sandbox2010-03-28T17:57:14Z<p>Murray: </p>
<hr />
<div><math>x = 2 y</math><br />
<amsmath>a</amsmath></div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Sandbox&diff=1594Sandbox2010-03-28T17:08:37Z<p>Murray: Created page with '<amsmath>a</amsmath>'</p>
<hr />
<div><amsmath>a</amsmath></div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:External_links&diff=1593Template:External links2010-01-10T05:03:01Z<p>Murray: /* Obtaining MLS */</p>
<hr />
<div>{| align=right<br />
|-<br />
|<br />
{| border=1 <br />
|-<br />
|<br />
===== Obtaining MLS =====<br />
* {{current version|Free download (pdf)}}<br />
* [[http:www.crcpress.com/product/isbn/9780849379819|Publisher (CRC Press)]]<br />
* [[http:www.amazon.com/Mathematical-Introduction-Robotic-Manipulation/dp/0849379814|Amazon]]<br />
* [[http:search.barnesandnoble.com/A-Mathematical-Introduction-to-Robotic-Manipulation/Richard-M-Murray/e/9780849379819|Barnes and Noble]]<br />
* [http://books.google.com/books/?id=D_PqGKRo7oIC Google Books]<br />
|}<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:External_links&diff=1592Template:External links2010-01-10T05:02:48Z<p>Murray: /* Obtaining MLS */</p>
<hr />
<div>{| align=right<br />
|-<br />
|<br />
{| border=1 <br />
|-<br />
|<br />
===== Obtaining MLS =====<br />
* {{current version|Free download (pdf)}}<br />
* [[http:www.crcpress.com/product/isbn/9780849379819|Publisher (CRC Press)]]<br />
* [[http:www.amazon.com/Mathematical-Introduction-Robotic-Manipulation/dp/0849379814|Amazon]]<br />
* [[http:search.barnesandnoble.com/A-Mathematical-Introduction-to-Robotic-Manipulation/Richard-M-Murray/e/9780849379819|Barnes and Noble]]<br />
* [http://books.google.com/books/?id=D_PqGKRo7oIC|Google Books]<br />
|}<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:External_links&diff=1591Template:External links2010-01-10T05:01:59Z<p>Murray: /* Obtaining MLS */</p>
<hr />
<div>{| align=right<br />
|-<br />
|<br />
{| border=1 <br />
|-<br />
|<br />
===== Obtaining MLS =====<br />
* {{current version|Free download (pdf)}}<br />
* [[http:www.crcpress.com/product/isbn/9780849379819|Publisher (CRC Press)]]<br />
* [[http:www.amazon.com/Mathematical-Introduction-Robotic-Manipulation/dp/0849379814|Amazon]]<br />
* [[http:search.barnesandnoble.com/A-Mathematical-Introduction-to-Robotic-Manipulation/Richard-M-Murray/e/9780849379819|Barnes and Noble]]<br />
* [[http:books.google.com/books?id=D_PqGKRo7oIC|Google Books]]<br />
|}<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:External_links&diff=1590Template:External links2010-01-10T05:01:40Z<p>Murray: /* Obtaining MLS */</p>
<hr />
<div>{| align=right<br />
|-<br />
|<br />
{| border=1 <br />
|-<br />
|<br />
===== Obtaining MLS =====<br />
* {{current version|Free download (pdf)}}<br />
* [[http:www.crcpress.com/product/isbn/9780849379819|Publisher (CRC Press)]]<br />
* [[http:www.amazon.com/Mathematical-Introduction-Robotic-Manipulation/dp/0849379814|Amazon]]<br />
* [[http:search.barnesandnoble.com/A-Mathematical-Introduction-to-Robotic-Manipulation/Richard-M-Murray/e/9780849379819|Barnes and Noble]]<br />
* [[http://books.google.com/books?id=D_PqGKRo7oIC|Google Books]]<br />
|}<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Main_Page&diff=1589Main Page2010-01-10T04:59:19Z<p>Murray: </p>
<hr />
<div><table width="100%"><br />
<tr><td align=center><br />
<font color='blue' size='+2'>A Mathematical Introduction to Robotic Manipulation</font></td></tr><br />
<tr><td align=center height="40"><font size='+1'>[[Richard M. Murray]], [[Zexiang Li]] and [[S. Shankar Sastry]]</font></td></tr><br />
</table> __NOTOC__<br />
<br />
{{external links}}<br />
Welcome to {{SITENAME}}. This is the wiki for the text ''A Mathematical Introduction to Robotic Manipulation'' by Richard Murray, Zexiang Li and Shankar Sastry. On this site you will find information on the {{current version|current version}} of the book as well as additional [[Additional Examples|examples]], [[Additional Exercises|exercises]], and [[Frequently Asked Questions|frequently asked questions]] (coming soon).<br />
<br />
''This site is currently under construction and some links may not be functional.''<br />
<br />
===== News ([[Archived news|archive]]) =====<br />
* 22 Jul 09: Chapter pages are getting set up (with summaries)<br />
* 25 Jun 09: The [[first edition]] PDF is now available online<br />
* 12 Jun 09: initial wiki creation<br />
<p><br />
<br />
=== Contents ===<br />
{| width=100% border=1 <br />
|- valign=top<br />
| width=50% |<br />
* {{ch:Preface}}<br />
* {{ch:Introduction}}<br />
* {{ch:Rigid Body Motion}}<br />
* {{ch:Manipulator Kinematics}}<br />
* {{ch:Robot Dynamics and Control}}<br />
* {{ch:Multifingered Hand Kinematics}}<br />
| width=50% |<br />
* {{ch:Hand Dynamics and Control}}<br />
* {{ch:Nonholonomic Behavior in Robotic Systems}}<br />
* {{ch:Nonholonomic Motion Planning}}<br />
* {{ch:Future Directions}}<br />
* {{ch:Lie Groups and Robot Kinematics}}<br />
* [[Bibliography]] and [[Index]]<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Software&diff=1588Software2009-11-02T21:49:44Z<p>Murray: /* Individual files */</p>
<hr />
<div>{{righttoc}}<br />
This page contains information on software that can be used to perform some of the analysis described in {{MLS title}}.<br />
<br />
=== Mathematica ===<br />
Two Mathematica packages have been written which implement many of the calculations described in MLS. These packages are available free of charge using the links below. '''This software does not work with the latest version of Mathematica.''' The software will be updated along with the second edition of the text.<br />
<br />
==== Tar files ====<br />
* {{MLS ftp|screws.tar}} - contains source code, documentation, and examples for Screws.m and RobotLinks.m (tar file, 128K).<br />
* {{MLS ftp|examples.tar}} - Mathematica source code for most of the examples in the book (tar file, 48K).<br />
<br />
==== Individual files ====<br />
<br />
* {{MLS ftp|Screws.m}} - A package for basic screw calculus in R^3.<br />
* {{MLS ftp|RobotLinks.m}} - Calculate kinematic functions for robots (using Screws.m).<br />
* {{MLS ftp|Jac.m}} - simple function for computing Jacobian matrices for nonlinear maps.<br />
* {{MLS ftp|SCARA.m}} - Forward kinematics for a 4 DOF SCARA manipulator (requires Screws.m)<br />
* {{MLS ftp|Elbow.m}} - Forward kinematics for a 6 DOF Elbow manipulator (requires Screws.m)<br />
* More examples: Individual examples from the book<br />
<br />
==== Documentation ====<br />
<br />
* [[Media:screws-overview.pdf|Brief overview]] on the use of these packages (PDF, 4 pages).<br />
* [[Media:screws-reference.pdf|Reference manual]]: PDF (10 pages) or HTML (not yet available).</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:MLS_ftp&diff=1587Template:MLS ftp2009-11-02T21:47:41Z<p>Murray: </p>
<hr />
<div>[http://www.cds.caltech.edu/~murray/books/MLS94/ftp/{{{1}}} {{{1}}}]</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:MLS_ftp&diff=1586Template:MLS ftp2009-11-02T21:47:11Z<p>Murray: </p>
<hr />
<div>[http:www.cds.caltech.edu/~murray/books/MLS94/ftp/{{{1}}} {{{1}}}]</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:External_links&diff=1585Template:External links2009-09-03T19:58:07Z<p>Murray: /* Obtaining MLS */</p>
<hr />
<div>{| align=right<br />
|-<br />
|<br />
{| border=1 <br />
|-<br />
|<br />
===== Obtaining MLS =====<br />
* {{current version|Free download (pdf)}}<br />
* [[http:www.crcpress.com/product/isbn/9780849379819|Publisher (CRC Press)]]<br />
* [[http:www.amazon.com/Mathematical-Introduction-Robotic-Manipulation/dp/0849379814|Amazon]]<br />
* [[http:search.barnesandnoble.com/A-Mathematical-Introduction-to-Robotic-Manipulation/Richard-M-Murray/e/9780849379819|Barnes and Noble]]<br />
* [[http:books.google.com/books?id=D_PqGKRo7oIC|Google Books]]<br />
|}<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:External_links&diff=1584Template:External links2009-09-03T19:57:48Z<p>Murray: /* Obtaining MLS */</p>
<hr />
<div>{| align=right<br />
|-<br />
|<br />
{| border=1 <br />
|-<br />
|<br />
===== Obtaining MLS =====<br />
* {{current version|Free download (pdf)}}<br />
* [[http://www.crcpress.com/product/isbn/9780849379819|Publisher (CRC Press)]]<br />
* [[http:www.amazon.com/Mathematical-Introduction-Robotic-Manipulation/dp/0849379814|Amazon]]<br />
* [[http:search.barnesandnoble.com/A-Mathematical-Introduction-to-Robotic-Manipulation/Richard-M-Murray/e/9780849379819|Barnes and Noble]]<br />
* [[http:books.google.com/books?id=D_PqGKRo7oIC|Google Books]]<br />
|}<br />
|}</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Robot_Dynamics_and_Control&diff=1583Robot Dynamics and Control2009-08-17T05:29:29Z<p>Murray: </p>
<hr />
<div>{{chapter header|Manipulator Kinematics|Robot Dynamics and Control|Multifingered Hand Kinematics}}<br />
{{righttoc}}<br />
This chapter presents an introduction to the dynamics and control of<br />
robot manipulators. We derive the equations of motion for a general<br />
open-chain manipulator and, using the structure present in the<br />
dynamics, construct control laws for asymptotic tracking of a desired<br />
trajectory. In deriving the dynamics, we will make explicit use of<br />
twists for representing the kinematics of the manipulator and explore<br />
the role that the kinematics play in the equations of motion. We<br />
assume some familiarity with dynamics and control of physical systems.<br />
<br />
{| width=100%<br />
|- valign=top<br />
| width=25% |<br />
| width=25% |<br />
* {{MLS pdf|mls94-manipdyn_v1_2.pdf|Chapter pdf}} (436K)<br />
| width=25% |<br />
* {{MLS pdf|zxl_manipdyn-jul09.pdf|Lecture notes}} (1.2M)<br />
| width=25% |<br />
|}<br />
<br />
=== Summary ===<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li><br />
The equations of motion for a mechanical system with Lagrangian <amsmath>L =<br />
T(q,\dot q)<br />
- V(q)</amsmath> satisfies ''Lagrange's equations'':<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q_i} - \frac{\partial<br />
L}{\partial q_i} = \Upsilon_i,<br />
</amsmath></center><br />
where <amsmath>q \in {\mathbb R}^n</amsmath> is a set of generalized coordinates for the<br />
system and <amsmath>\Upsilon \in {\mathbb R}^n</amsmath> represents the vector of<br />
generalized external forces.<br />
</li><br />
<br />
<li> The equations of motion for a rigid body with configuration<br />
<amsmath>g(t) \in \mbox{\it SE}(3)</amsmath> are given by the ''Newton-Euler equations'':<br />
<center><amsmath><br />
\begin{bmatrix} mI & 0 \\ 0 & \cal I \end{bmatrix} \begin{bmatrix}<br />
\dot v^b \\ \dot \omega^b \end{bmatrix} +<br />
\begin{bmatrix} \omega^b \times m v^b \\ \omega^b \times {\cal I}<br />
\omega^b \end{bmatrix} = F^b,<br />
</amsmath></center><br />
where <amsmath>m</amsmath> is the mass of the body, <amsmath>\cal I</amsmath> is the inertia tensor, and<br />
<amsmath>V^b = (v^b, \omega^b)</amsmath> and <amsmath>F^b</amsmath> represent the instantaneous body<br />
velocity and applied body wrench.<br />
</li><br />
<br />
<li> The equations of motion for an open-chain robot manipulator can be<br />
written as<br />
<center><amsmath><br />
M(\theta) \ddot\theta +<br />
C(\theta, \dot\theta) \dot\theta +<br />
N(\theta, \dot\theta)<br />
= \tau<br />
</amsmath></center><br />
where <amsmath>\theta \in {\mathbb R}^n</amsmath> is the set of joint<br />
variables for the robot and <amsmath>\tau \in {\mathbb R}^n</amsmath><br />
is the set of actuator forces applied at the joints. The dynamics of<br />
a robot manipulator satisfy the following properties:<br />
* <amsmath>M(\theta)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\dot M - 2C \in {\mathbb R}^{n \times n}</amsmath> is a skew-symmetric matrix.<br />
</li><br />
<br />
<li> <br />
An equilibrium point <amsmath>x^*</amsmath> for the system <amsmath>\dot x = f(x,t)</amsmath> is ''locally asymptotically stable'' if all solutions which start near <amsmath>x^*</amsmath><br />
approach <amsmath>x^*</amsmath> as <amsmath>t \to \infty</amsmath>. Stability can be checked using the<br />
''direct method of Lyapunov'', by finding a locally positive<br />
definite function <amsmath>V(x,t) \geq 0</amsmath> such that <amsmath>-\dot V(x,t)</amsmath> is a<br />
locally positive definite function along trajectories of the system.<br />
In situations in which <amsmath>-\dot V</amsmath> is only positive semi-definite,<br />
''Lasalle's invariance principle'' can be used to check asymptotic<br />
stability. Alternatively, the ''indirect method of Lyapunov'' can<br />
be employed by examining the linearization of the system, if it<br />
exists. Global exponential stability of the linearization implies<br />
local exponential stability of the full nonlinear system.<br />
</li><br />
<br />
<li> Using the form and structure of the robot dynamics, several control<br />
laws can be shown to track arbitrary trajectories. Two of the most<br />
common are the ''computed torque control law'',<br />
<center><amsmath><br />
\tau = M(\theta) (\ddot \theta_d + K_v \dot e + K_p e) + <br />
C(\theta,\dot \theta) \dot \theta + N(\theta,\dot \theta),<br />
</amsmath></center><br />
and an ''augmented PD control law'',<br />
<center><amsmath><br />
\tau = M(\theta) \ddot \theta_d + <br />
C(\theta, \dot \theta) \dot \theta_d + <br />
N(\theta, \dot \theta) +<br />
K_v \dot e + K_p e.<br />
</amsmath></center><br />
Both of these controllers result in exponential trajectory tracking of<br />
a given joint space trajectory. Workspace versions of these control<br />
laws can also be derived, allowing end-effector trajectories to be<br />
tracked without solving the inverse kinematics problem. Stability of<br />
these controllers can be verified using Lyapunov stability.<br />
</li><br />
</ol><br />
<br />
=== Errata ===<br />
<ncl>Robot Dynamics and Control errata v1</ncl><br />
* [[:Category:Robot Dynamics and Control errata|Full list of errata]]<br />
* {{submitbug}}<br />
<br />
=== Additional information ===</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Robot_Dynamics_and_Control&diff=1582Robot Dynamics and Control2009-08-17T05:28:00Z<p>Murray: </p>
<hr />
<div>{{chapter header|Manipulator Kinematics|Robot Dynamics and Control|Multifingered Hand Kinematics}}<br />
{{righttoc}}<br />
This chapter presents an introduction to the dynamics and control of<br />
robot manipulators. We derive the equations of motion for a general<br />
open-chain manipulator and, using the structure present in the<br />
dynamics, construct control laws for asymptotic tracking of a desired<br />
trajectory. In deriving the dynamics, we will make explicit use of<br />
twists for representing the kinematics of the manipulator and explore<br />
the role that the kinematics play in the equations of motion. We<br />
assume some familiarity with dynamics and control of physical systems.<br />
<br />
{| width=100%<br />
|- valign=top<br />
| width=50% |<br />
* {{MLS pdf|mls94-manipdyn_v1_2.pdf|Chapter pdf}} (436K)<br />
| width=50% |<br />
* {{MLS pdf|zxl_manipdyn-jul09.pdf|Lecture notes}} (1.2M)<br />
|}<br />
<br />
=== Summary ===<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li><br />
The equations of motion for a mechanical system with Lagrangian <amsmath>L =<br />
T(q,\dot q)<br />
- V(q)</amsmath> satisfies ''Lagrange's equations'':<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q_i} - \frac{\partial<br />
L}{\partial q_i} = \Upsilon_i,<br />
</amsmath></center><br />
where <amsmath>q \in {\mathbb R}^n</amsmath> is a set of generalized coordinates for the<br />
system and <amsmath>\Upsilon \in {\mathbb R}^n</amsmath> represents the vector of<br />
generalized external forces.<br />
</li><br />
<br />
<li> The equations of motion for a rigid body with configuration<br />
<amsmath>g(t) \in \mbox{\it SE}(3)</amsmath> are given by the ''Newton-Euler equations'':<br />
<center><amsmath><br />
\begin{bmatrix} mI & 0 \\ 0 & \cal I \end{bmatrix} \begin{bmatrix}<br />
\dot v^b \\ \dot \omega^b \end{bmatrix} +<br />
\begin{bmatrix} \omega^b \times m v^b \\ \omega^b \times {\cal I}<br />
\omega^b \end{bmatrix} = F^b,<br />
</amsmath></center><br />
where <amsmath>m</amsmath> is the mass of the body, <amsmath>\cal I</amsmath> is the inertia tensor, and<br />
<amsmath>V^b = (v^b, \omega^b)</amsmath> and <amsmath>F^b</amsmath> represent the instantaneous body<br />
velocity and applied body wrench.<br />
</li><br />
<br />
<li> The equations of motion for an open-chain robot manipulator can be<br />
written as<br />
<center><amsmath><br />
M(\theta) \ddot\theta +<br />
C(\theta, \dot\theta) \dot\theta +<br />
N(\theta, \dot\theta)<br />
= \tau<br />
</amsmath></center><br />
where <amsmath>\theta \in {\mathbb R}^n</amsmath> is the set of joint<br />
variables for the robot and <amsmath>\tau \in {\mathbb R}^n</amsmath><br />
is the set of actuator forces applied at the joints. The dynamics of<br />
a robot manipulator satisfy the following properties:<br />
* <amsmath>M(\theta)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\dot M - 2C \in {\mathbb R}^{n \times n}</amsmath> is a skew-symmetric matrix.<br />
</li><br />
<br />
<li> <br />
An equilibrium point <amsmath>x^*</amsmath> for the system <amsmath>\dot x = f(x,t)</amsmath> is ''locally asymptotically stable'' if all solutions which start near <amsmath>x^*</amsmath><br />
approach <amsmath>x^*</amsmath> as <amsmath>t \to \infty</amsmath>. Stability can be checked using the<br />
''direct method of Lyapunov'', by finding a locally positive<br />
definite function <amsmath>V(x,t) \geq 0</amsmath> such that <amsmath>-\dot V(x,t)</amsmath> is a<br />
locally positive definite function along trajectories of the system.<br />
In situations in which <amsmath>-\dot V</amsmath> is only positive semi-definite,<br />
''Lasalle's invariance principle'' can be used to check asymptotic<br />
stability. Alternatively, the ''indirect method of Lyapunov'' can<br />
be employed by examining the linearization of the system, if it<br />
exists. Global exponential stability of the linearization implies<br />
local exponential stability of the full nonlinear system.<br />
</li><br />
<br />
<li> Using the form and structure of the robot dynamics, several control<br />
laws can be shown to track arbitrary trajectories. Two of the most<br />
common are the ''computed torque control law'',<br />
<center><amsmath><br />
\tau = M(\theta) (\ddot \theta_d + K_v \dot e + K_p e) + <br />
C(\theta,\dot \theta) \dot \theta + N(\theta,\dot \theta),<br />
</amsmath></center><br />
and an ''augmented PD control law'',<br />
<center><amsmath><br />
\tau = M(\theta) \ddot \theta_d + <br />
C(\theta, \dot \theta) \dot \theta_d + <br />
N(\theta, \dot \theta) +<br />
K_v \dot e + K_p e.<br />
</amsmath></center><br />
Both of these controllers result in exponential trajectory tracking of<br />
a given joint space trajectory. Workspace versions of these control<br />
laws can also be derived, allowing end-effector trajectories to be<br />
tracked without solving the inverse kinematics problem. Stability of<br />
these controllers can be verified using Lyapunov stability.<br />
</li><br />
</ol><br />
<br />
=== Errata ===<br />
<ncl>Robot Dynamics and Control errata v1</ncl><br />
* [[:Category:Robot Dynamics and Control errata|Full list of errata]]<br />
* {{submitbug}}<br />
<br />
=== Additional information ===</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Robot_Dynamics_and_Control&diff=1581Robot Dynamics and Control2009-08-17T05:19:58Z<p>Murray: </p>
<hr />
<div>{{chapter header|Manipulator Kinematics|Robot Dynamics and Control|Multifingered Hand Kinematics}}<br />
{{righttoc}}<br />
This chapter presents an introduction to the dynamics and control of<br />
robot manipulators. We derive the equations of motion for a general<br />
open-chain manipulator and, using the structure present in the<br />
dynamics, construct control laws for asymptotic tracking of a desired<br />
trajectory. In deriving the dynamics, we will make explicit use of<br />
twists for representing the kinematics of the manipulator and explore<br />
the role that the kinematics play in the equations of motion. We<br />
assume some familiarity with dynamics and control of physical systems.<br />
<br />
=== Summary ===<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li><br />
The equations of motion for a mechanical system with Lagrangian <amsmath>L =<br />
T(q,\dot q)<br />
- V(q)</amsmath> satisfies ''Lagrange's equations'':<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q_i} - \frac{\partial<br />
L}{\partial q_i} = \Upsilon_i,<br />
</amsmath></center><br />
where <amsmath>q \in {\mathbb R}^n</amsmath> is a set of generalized coordinates for the<br />
system and <amsmath>\Upsilon \in {\mathbb R}^n</amsmath> represents the vector of<br />
generalized external forces.<br />
</li><br />
<br />
<li> The equations of motion for a rigid body with configuration<br />
<amsmath>g(t) \in \mbox{\it SE}(3)</amsmath> are given by the ''Newton-Euler equations'':<br />
<center><amsmath><br />
\begin{bmatrix} mI & 0 \\ 0 & \cal I \end{bmatrix} \begin{bmatrix}<br />
\dot v^b \\ \dot \omega^b \end{bmatrix} +<br />
\begin{bmatrix} \omega^b \times m v^b \\ \omega^b \times {\cal I}<br />
\omega^b \end{bmatrix} = F^b,<br />
</amsmath></center><br />
where <amsmath>m</amsmath> is the mass of the body, <amsmath>\cal I</amsmath> is the inertia tensor, and<br />
<amsmath>V^b = (v^b, \omega^b)</amsmath> and <amsmath>F^b</amsmath> represent the instantaneous body<br />
velocity and applied body wrench.<br />
</li><br />
<br />
<li> The equations of motion for an open-chain robot manipulator can be<br />
written as<br />
<center><amsmath><br />
M(\theta) \ddot\theta +<br />
C(\theta, \dot\theta) \dot\theta +<br />
N(\theta, \dot\theta)<br />
= \tau<br />
</amsmath></center><br />
where <amsmath>\theta \in {\mathbb R}^n</amsmath> is the set of joint<br />
variables for the robot and <amsmath>\tau \in {\mathbb R}^n</amsmath><br />
is the set of actuator forces applied at the joints. The dynamics of<br />
a robot manipulator satisfy the following properties:<br />
* <amsmath>M(\theta)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\dot M - 2C \in {\mathbb R}^{n \times n}</amsmath> is a skew-symmetric matrix.<br />
</li><br />
<br />
<li> <br />
An equilibrium point <amsmath>x^*</amsmath> for the system <amsmath>\dot x = f(x,t)</amsmath> is ''locally asymptotically stable'' if all solutions which start near <amsmath>x^*</amsmath><br />
approach <amsmath>x^*</amsmath> as <amsmath>t \to \infty</amsmath>. Stability can be checked using the<br />
''direct method of Lyapunov'', by finding a locally positive<br />
definite function <amsmath>V(x,t) \geq 0</amsmath> such that <amsmath>-\dot V(x,t)</amsmath> is a<br />
locally positive definite function along trajectories of the system.<br />
In situations in which <amsmath>-\dot V</amsmath> is only positive semi-definite,<br />
''Lasalle's invariance principle'' can be used to check asymptotic<br />
stability. Alternatively, the ''indirect method of Lyapunov'' can<br />
be employed by examining the linearization of the system, if it<br />
exists. Global exponential stability of the linearization implies<br />
local exponential stability of the full nonlinear system.<br />
</li><br />
<br />
<li> Using the form and structure of the robot dynamics, several control<br />
laws can be shown to track arbitrary trajectories. Two of the most<br />
common are the ''computed torque control law'',<br />
<center><amsmath><br />
\tau = M(\theta) (\ddot \theta_d + K_v \dot e + K_p e) + <br />
C(\theta,\dot \theta) \dot \theta + N(\theta,\dot \theta),<br />
</amsmath></center><br />
and an ''augmented PD control law'',<br />
<center><amsmath><br />
\tau = M(\theta) \ddot \theta_d + <br />
C(\theta, \dot \theta) \dot \theta_d + <br />
N(\theta, \dot \theta) +<br />
K_v \dot e + K_p e.<br />
</amsmath></center><br />
Both of these controllers result in exponential trajectory tracking of<br />
a given joint space trajectory. Workspace versions of these control<br />
laws can also be derived, allowing end-effector trajectories to be<br />
tracked without solving the inverse kinematics problem. Stability of<br />
these controllers can be verified using Lyapunov stability.<br />
</li><br />
</ol><br />
<br />
=== Errata ===<br />
<ncl>Robot Dynamics and Control errata v1</ncl><br />
* [[:Category:Robot Dynamics and Control errata|Full list of errata]]<br />
* {{submitbug}}<br />
<br />
=== Additional information ===</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Robot_Dynamics_and_Control&diff=1580Robot Dynamics and Control2009-08-16T21:08:06Z<p>Murray: /* Errata */</p>
<hr />
<div>{{chapter header|Manipulator Kinematics|Robot Dynamics and Control|Multifingered Hand Kinematics}}<br />
This chapter presents an introduction to the dynamics and control of<br />
robot manipulators. We derive the equations of motion for a general<br />
open-chain manipulator and, using the structure present in the<br />
dynamics, construct control laws for asymptotic tracking of a desired<br />
trajectory. In deriving the dynamics, we will make explicit use of<br />
twists for representing the kinematics of the manipulator and explore<br />
the role that the kinematics play in the equations of motion. We<br />
assume some familiarity with dynamics and control of physical systems.<br />
<br />
=== Summary ===<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li><br />
The equations of motion for a mechanical system with Lagrangian <amsmath>L =<br />
T(q,\dot q)<br />
- V(q)</amsmath> satisfies ''Lagrange's equations'':<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q_i} - \frac{\partial<br />
L}{\partial q_i} = \Upsilon_i,<br />
</amsmath></center><br />
where <amsmath>q \in {\mathbb R}^n</amsmath> is a set of generalized coordinates for the<br />
system and <amsmath>\Upsilon \in {\mathbb R}^n</amsmath> represents the vector of<br />
generalized external forces.<br />
</li><br />
<br />
<li> The equations of motion for a rigid body with configuration<br />
<amsmath>g(t) \in \mbox{\it SE}(3)</amsmath> are given by the ''Newton-Euler equations'':<br />
<center><amsmath><br />
\begin{bmatrix} mI & 0 \\ 0 & \cal I \end{bmatrix} \begin{bmatrix}<br />
\dot v^b \\ \dot \omega^b \end{bmatrix} +<br />
\begin{bmatrix} \omega^b \times m v^b \\ \omega^b \times {\cal I}<br />
\omega^b \end{bmatrix} = F^b,<br />
</amsmath></center><br />
where <amsmath>m</amsmath> is the mass of the body, <amsmath>\cal I</amsmath> is the inertia tensor, and<br />
<amsmath>V^b = (v^b, \omega^b)</amsmath> and <amsmath>F^b</amsmath> represent the instantaneous body<br />
velocity and applied body wrench.<br />
</li><br />
<br />
<li> The equations of motion for an open-chain robot manipulator can be<br />
written as<br />
<center><amsmath><br />
M(\theta) \ddot\theta +<br />
C(\theta, \dot\theta) \dot\theta +<br />
N(\theta, \dot\theta)<br />
= \tau<br />
</amsmath></center><br />
where <amsmath>\theta \in {\mathbb R}^n</amsmath> is the set of joint<br />
variables for the robot and <amsmath>\tau \in {\mathbb R}^n</amsmath><br />
is the set of actuator forces applied at the joints. The dynamics of<br />
a robot manipulator satisfy the following properties:<br />
* <amsmath>M(\theta)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\dot M - 2C \in {\mathbb R}^{n \times n}</amsmath> is a skew-symmetric matrix.<br />
</li><br />
<br />
<li> <br />
An equilibrium point <amsmath>x^*</amsmath> for the system <amsmath>\dot x = f(x,t)</amsmath> is ''locally asymptotically stable'' if all solutions which start near <amsmath>x^*</amsmath><br />
approach <amsmath>x^*</amsmath> as <amsmath>t \to \infty</amsmath>. Stability can be checked using the<br />
''direct method of Lyapunov'', by finding a locally positive<br />
definite function <amsmath>V(x,t) \geq 0</amsmath> such that <amsmath>-\dot V(x,t)</amsmath> is a<br />
locally positive definite function along trajectories of the system.<br />
In situations in which <amsmath>-\dot V</amsmath> is only positive semi-definite,<br />
''Lasalle's invariance principle'' can be used to check asymptotic<br />
stability. Alternatively, the ''indirect method of Lyapunov'' can<br />
be employed by examining the linearization of the system, if it<br />
exists. Global exponential stability of the linearization implies<br />
local exponential stability of the full nonlinear system.<br />
</li><br />
<br />
<li> Using the form and structure of the robot dynamics, several control<br />
laws can be shown to track arbitrary trajectories. Two of the most<br />
common are the ''computed torque control law'',<br />
<center><amsmath><br />
\tau = M(\theta) (\ddot \theta_d + K_v \dot e + K_p e) + <br />
C(\theta,\dot \theta) \dot \theta + N(\theta,\dot \theta),<br />
</amsmath></center><br />
and an ''augmented PD control law'',<br />
<center><amsmath><br />
\tau = M(\theta) \ddot \theta_d + <br />
C(\theta, \dot \theta) \dot \theta_d + <br />
N(\theta, \dot \theta) +<br />
K_v \dot e + K_p e.<br />
</amsmath></center><br />
Both of these controllers result in exponential trajectory tracking of<br />
a given joint space trajectory. Workspace versions of these control<br />
laws can also be derived, allowing end-effector trajectories to be<br />
tracked without solving the inverse kinematics problem. Stability of<br />
these controllers can be verified using Lyapunov stability.<br />
</li><br />
</ol><br />
<br />
=== Errata ===<br />
<ncl>Robot Dynamics and Control errata v1</ncl><br />
* [[:Category:Robot Dynamics and Control errata|Full list of errata]]<br />
* {{submitbug}}<br />
<br />
=== Additional information ===</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Robot_Dynamics_and_Control&diff=1579Robot Dynamics and Control2009-08-16T21:06:52Z<p>Murray: /* Errata */</p>
<hr />
<div>{{chapter header|Manipulator Kinematics|Robot Dynamics and Control|Multifingered Hand Kinematics}}<br />
This chapter presents an introduction to the dynamics and control of<br />
robot manipulators. We derive the equations of motion for a general<br />
open-chain manipulator and, using the structure present in the<br />
dynamics, construct control laws for asymptotic tracking of a desired<br />
trajectory. In deriving the dynamics, we will make explicit use of<br />
twists for representing the kinematics of the manipulator and explore<br />
the role that the kinematics play in the equations of motion. We<br />
assume some familiarity with dynamics and control of physical systems.<br />
<br />
=== Summary ===<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li><br />
The equations of motion for a mechanical system with Lagrangian <amsmath>L =<br />
T(q,\dot q)<br />
- V(q)</amsmath> satisfies ''Lagrange's equations'':<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q_i} - \frac{\partial<br />
L}{\partial q_i} = \Upsilon_i,<br />
</amsmath></center><br />
where <amsmath>q \in {\mathbb R}^n</amsmath> is a set of generalized coordinates for the<br />
system and <amsmath>\Upsilon \in {\mathbb R}^n</amsmath> represents the vector of<br />
generalized external forces.<br />
</li><br />
<br />
<li> The equations of motion for a rigid body with configuration<br />
<amsmath>g(t) \in \mbox{\it SE}(3)</amsmath> are given by the ''Newton-Euler equations'':<br />
<center><amsmath><br />
\begin{bmatrix} mI & 0 \\ 0 & \cal I \end{bmatrix} \begin{bmatrix}<br />
\dot v^b \\ \dot \omega^b \end{bmatrix} +<br />
\begin{bmatrix} \omega^b \times m v^b \\ \omega^b \times {\cal I}<br />
\omega^b \end{bmatrix} = F^b,<br />
</amsmath></center><br />
where <amsmath>m</amsmath> is the mass of the body, <amsmath>\cal I</amsmath> is the inertia tensor, and<br />
<amsmath>V^b = (v^b, \omega^b)</amsmath> and <amsmath>F^b</amsmath> represent the instantaneous body<br />
velocity and applied body wrench.<br />
</li><br />
<br />
<li> The equations of motion for an open-chain robot manipulator can be<br />
written as<br />
<center><amsmath><br />
M(\theta) \ddot\theta +<br />
C(\theta, \dot\theta) \dot\theta +<br />
N(\theta, \dot\theta)<br />
= \tau<br />
</amsmath></center><br />
where <amsmath>\theta \in {\mathbb R}^n</amsmath> is the set of joint<br />
variables for the robot and <amsmath>\tau \in {\mathbb R}^n</amsmath><br />
is the set of actuator forces applied at the joints. The dynamics of<br />
a robot manipulator satisfy the following properties:<br />
* <amsmath>M(\theta)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\dot M - 2C \in {\mathbb R}^{n \times n}</amsmath> is a skew-symmetric matrix.<br />
</li><br />
<br />
<li> <br />
An equilibrium point <amsmath>x^*</amsmath> for the system <amsmath>\dot x = f(x,t)</amsmath> is ''locally asymptotically stable'' if all solutions which start near <amsmath>x^*</amsmath><br />
approach <amsmath>x^*</amsmath> as <amsmath>t \to \infty</amsmath>. Stability can be checked using the<br />
''direct method of Lyapunov'', by finding a locally positive<br />
definite function <amsmath>V(x,t) \geq 0</amsmath> such that <amsmath>-\dot V(x,t)</amsmath> is a<br />
locally positive definite function along trajectories of the system.<br />
In situations in which <amsmath>-\dot V</amsmath> is only positive semi-definite,<br />
''Lasalle's invariance principle'' can be used to check asymptotic<br />
stability. Alternatively, the ''indirect method of Lyapunov'' can<br />
be employed by examining the linearization of the system, if it<br />
exists. Global exponential stability of the linearization implies<br />
local exponential stability of the full nonlinear system.<br />
</li><br />
<br />
<li> Using the form and structure of the robot dynamics, several control<br />
laws can be shown to track arbitrary trajectories. Two of the most<br />
common are the ''computed torque control law'',<br />
<center><amsmath><br />
\tau = M(\theta) (\ddot \theta_d + K_v \dot e + K_p e) + <br />
C(\theta,\dot \theta) \dot \theta + N(\theta,\dot \theta),<br />
</amsmath></center><br />
and an ''augmented PD control law'',<br />
<center><amsmath><br />
\tau = M(\theta) \ddot \theta_d + <br />
C(\theta, \dot \theta) \dot \theta_d + <br />
N(\theta, \dot \theta) +<br />
K_v \dot e + K_p e.<br />
</amsmath></center><br />
Both of these controllers result in exponential trajectory tracking of<br />
a given joint space trajectory. Workspace versions of these control<br />
laws can also be derived, allowing end-effector trajectories to be<br />
tracked without solving the inverse kinematics problem. Stability of<br />
these controllers can be verified using Lyapunov stability.<br />
</li><br />
</ol><br />
<br />
=== Errata ===<br />
<ncl>Robot Dynamics and Control errata {{version}}</ncl><br />
* [[:Category:Robot Dynamics and Control errata|Full list of errata]]<br />
* {{submitbug}}<br />
<br />
=== Additional information ===</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Robot_Dynamics_and_Control&diff=1578Robot Dynamics and Control2009-08-16T21:06:42Z<p>Murray: /* Errata */</p>
<hr />
<div>{{chapter header|Manipulator Kinematics|Robot Dynamics and Control|Multifingered Hand Kinematics}}<br />
This chapter presents an introduction to the dynamics and control of<br />
robot manipulators. We derive the equations of motion for a general<br />
open-chain manipulator and, using the structure present in the<br />
dynamics, construct control laws for asymptotic tracking of a desired<br />
trajectory. In deriving the dynamics, we will make explicit use of<br />
twists for representing the kinematics of the manipulator and explore<br />
the role that the kinematics play in the equations of motion. We<br />
assume some familiarity with dynamics and control of physical systems.<br />
<br />
=== Summary ===<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li><br />
The equations of motion for a mechanical system with Lagrangian <amsmath>L =<br />
T(q,\dot q)<br />
- V(q)</amsmath> satisfies ''Lagrange's equations'':<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q_i} - \frac{\partial<br />
L}{\partial q_i} = \Upsilon_i,<br />
</amsmath></center><br />
where <amsmath>q \in {\mathbb R}^n</amsmath> is a set of generalized coordinates for the<br />
system and <amsmath>\Upsilon \in {\mathbb R}^n</amsmath> represents the vector of<br />
generalized external forces.<br />
</li><br />
<br />
<li> The equations of motion for a rigid body with configuration<br />
<amsmath>g(t) \in \mbox{\it SE}(3)</amsmath> are given by the ''Newton-Euler equations'':<br />
<center><amsmath><br />
\begin{bmatrix} mI & 0 \\ 0 & \cal I \end{bmatrix} \begin{bmatrix}<br />
\dot v^b \\ \dot \omega^b \end{bmatrix} +<br />
\begin{bmatrix} \omega^b \times m v^b \\ \omega^b \times {\cal I}<br />
\omega^b \end{bmatrix} = F^b,<br />
</amsmath></center><br />
where <amsmath>m</amsmath> is the mass of the body, <amsmath>\cal I</amsmath> is the inertia tensor, and<br />
<amsmath>V^b = (v^b, \omega^b)</amsmath> and <amsmath>F^b</amsmath> represent the instantaneous body<br />
velocity and applied body wrench.<br />
</li><br />
<br />
<li> The equations of motion for an open-chain robot manipulator can be<br />
written as<br />
<center><amsmath><br />
M(\theta) \ddot\theta +<br />
C(\theta, \dot\theta) \dot\theta +<br />
N(\theta, \dot\theta)<br />
= \tau<br />
</amsmath></center><br />
where <amsmath>\theta \in {\mathbb R}^n</amsmath> is the set of joint<br />
variables for the robot and <amsmath>\tau \in {\mathbb R}^n</amsmath><br />
is the set of actuator forces applied at the joints. The dynamics of<br />
a robot manipulator satisfy the following properties:<br />
* <amsmath>M(\theta)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\dot M - 2C \in {\mathbb R}^{n \times n}</amsmath> is a skew-symmetric matrix.<br />
</li><br />
<br />
<li> <br />
An equilibrium point <amsmath>x^*</amsmath> for the system <amsmath>\dot x = f(x,t)</amsmath> is ''locally asymptotically stable'' if all solutions which start near <amsmath>x^*</amsmath><br />
approach <amsmath>x^*</amsmath> as <amsmath>t \to \infty</amsmath>. Stability can be checked using the<br />
''direct method of Lyapunov'', by finding a locally positive<br />
definite function <amsmath>V(x,t) \geq 0</amsmath> such that <amsmath>-\dot V(x,t)</amsmath> is a<br />
locally positive definite function along trajectories of the system.<br />
In situations in which <amsmath>-\dot V</amsmath> is only positive semi-definite,<br />
''Lasalle's invariance principle'' can be used to check asymptotic<br />
stability. Alternatively, the ''indirect method of Lyapunov'' can<br />
be employed by examining the linearization of the system, if it<br />
exists. Global exponential stability of the linearization implies<br />
local exponential stability of the full nonlinear system.<br />
</li><br />
<br />
<li> Using the form and structure of the robot dynamics, several control<br />
laws can be shown to track arbitrary trajectories. Two of the most<br />
common are the ''computed torque control law'',<br />
<center><amsmath><br />
\tau = M(\theta) (\ddot \theta_d + K_v \dot e + K_p e) + <br />
C(\theta,\dot \theta) \dot \theta + N(\theta,\dot \theta),<br />
</amsmath></center><br />
and an ''augmented PD control law'',<br />
<center><amsmath><br />
\tau = M(\theta) \ddot \theta_d + <br />
C(\theta, \dot \theta) \dot \theta_d + <br />
N(\theta, \dot \theta) +<br />
K_v \dot e + K_p e.<br />
</amsmath></center><br />
Both of these controllers result in exponential trajectory tracking of<br />
a given joint space trajectory. Workspace versions of these control<br />
laws can also be derived, allowing end-effector trajectories to be<br />
tracked without solving the inverse kinematics problem. Stability of<br />
these controllers can be verified using Lyapunov stability.<br />
</li><br />
</ol><br />
<br />
=== Errata ===<br />
* <ncl>Robot Dynamics and Control errata {{version}}</ncl><br />
* [[:Category:Robot Dynamics and Control errata|Full list of errata]]<br />
* {{submitbug}}<br />
<br />
=== Additional information ===</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Robot_Dynamics_and_Control&diff=1577Robot Dynamics and Control2009-08-16T21:06:24Z<p>Murray: </p>
<hr />
<div>{{chapter header|Manipulator Kinematics|Robot Dynamics and Control|Multifingered Hand Kinematics}}<br />
This chapter presents an introduction to the dynamics and control of<br />
robot manipulators. We derive the equations of motion for a general<br />
open-chain manipulator and, using the structure present in the<br />
dynamics, construct control laws for asymptotic tracking of a desired<br />
trajectory. In deriving the dynamics, we will make explicit use of<br />
twists for representing the kinematics of the manipulator and explore<br />
the role that the kinematics play in the equations of motion. We<br />
assume some familiarity with dynamics and control of physical systems.<br />
<br />
=== Summary ===<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li><br />
The equations of motion for a mechanical system with Lagrangian <amsmath>L =<br />
T(q,\dot q)<br />
- V(q)</amsmath> satisfies ''Lagrange's equations'':<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q_i} - \frac{\partial<br />
L}{\partial q_i} = \Upsilon_i,<br />
</amsmath></center><br />
where <amsmath>q \in {\mathbb R}^n</amsmath> is a set of generalized coordinates for the<br />
system and <amsmath>\Upsilon \in {\mathbb R}^n</amsmath> represents the vector of<br />
generalized external forces.<br />
</li><br />
<br />
<li> The equations of motion for a rigid body with configuration<br />
<amsmath>g(t) \in \mbox{\it SE}(3)</amsmath> are given by the ''Newton-Euler equations'':<br />
<center><amsmath><br />
\begin{bmatrix} mI & 0 \\ 0 & \cal I \end{bmatrix} \begin{bmatrix}<br />
\dot v^b \\ \dot \omega^b \end{bmatrix} +<br />
\begin{bmatrix} \omega^b \times m v^b \\ \omega^b \times {\cal I}<br />
\omega^b \end{bmatrix} = F^b,<br />
</amsmath></center><br />
where <amsmath>m</amsmath> is the mass of the body, <amsmath>\cal I</amsmath> is the inertia tensor, and<br />
<amsmath>V^b = (v^b, \omega^b)</amsmath> and <amsmath>F^b</amsmath> represent the instantaneous body<br />
velocity and applied body wrench.<br />
</li><br />
<br />
<li> The equations of motion for an open-chain robot manipulator can be<br />
written as<br />
<center><amsmath><br />
M(\theta) \ddot\theta +<br />
C(\theta, \dot\theta) \dot\theta +<br />
N(\theta, \dot\theta)<br />
= \tau<br />
</amsmath></center><br />
where <amsmath>\theta \in {\mathbb R}^n</amsmath> is the set of joint<br />
variables for the robot and <amsmath>\tau \in {\mathbb R}^n</amsmath><br />
is the set of actuator forces applied at the joints. The dynamics of<br />
a robot manipulator satisfy the following properties:<br />
* <amsmath>M(\theta)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\dot M - 2C \in {\mathbb R}^{n \times n}</amsmath> is a skew-symmetric matrix.<br />
</li><br />
<br />
<li> <br />
An equilibrium point <amsmath>x^*</amsmath> for the system <amsmath>\dot x = f(x,t)</amsmath> is ''locally asymptotically stable'' if all solutions which start near <amsmath>x^*</amsmath><br />
approach <amsmath>x^*</amsmath> as <amsmath>t \to \infty</amsmath>. Stability can be checked using the<br />
''direct method of Lyapunov'', by finding a locally positive<br />
definite function <amsmath>V(x,t) \geq 0</amsmath> such that <amsmath>-\dot V(x,t)</amsmath> is a<br />
locally positive definite function along trajectories of the system.<br />
In situations in which <amsmath>-\dot V</amsmath> is only positive semi-definite,<br />
''Lasalle's invariance principle'' can be used to check asymptotic<br />
stability. Alternatively, the ''indirect method of Lyapunov'' can<br />
be employed by examining the linearization of the system, if it<br />
exists. Global exponential stability of the linearization implies<br />
local exponential stability of the full nonlinear system.<br />
</li><br />
<br />
<li> Using the form and structure of the robot dynamics, several control<br />
laws can be shown to track arbitrary trajectories. Two of the most<br />
common are the ''computed torque control law'',<br />
<center><amsmath><br />
\tau = M(\theta) (\ddot \theta_d + K_v \dot e + K_p e) + <br />
C(\theta,\dot \theta) \dot \theta + N(\theta,\dot \theta),<br />
</amsmath></center><br />
and an ''augmented PD control law'',<br />
<center><amsmath><br />
\tau = M(\theta) \ddot \theta_d + <br />
C(\theta, \dot \theta) \dot \theta_d + <br />
N(\theta, \dot \theta) +<br />
K_v \dot e + K_p e.<br />
</amsmath></center><br />
Both of these controllers result in exponential trajectory tracking of<br />
a given joint space trajectory. Workspace versions of these control<br />
laws can also be derived, allowing end-effector trajectories to be<br />
tracked without solving the inverse kinematics problem. Stability of<br />
these controllers can be verified using Lyapunov stability.<br />
</li><br />
</ol><br />
<br />
=== Errata ===<br />
* Robot Dynamics and Control errata {{version}}<br />
* [[:Category:Robot Dynamics and Control errata|Full list of errata]]<br />
* {{submitbug}}<br />
<br />
=== Additional information ===</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Robot_Dynamics_and_Control&diff=1576Robot Dynamics and Control2009-08-16T21:06:01Z<p>Murray: </p>
<hr />
<div>{{chapter header|Manipulator Kinematics|Robot Dynamics and Control|Multifingered Hand Kinematics}}<br />
This chapter presents an introduction to the dynamics and control of<br />
robot manipulators. We derive the equations of motion for a general<br />
open-chain manipulator and, using the structure present in the<br />
dynamics, construct control laws for asymptotic tracking of a desired<br />
trajectory. In deriving the dynamics, we will make explicit use of<br />
twists for representing the kinematics of the manipulator and explore<br />
the role that the kinematics play in the equations of motion. We<br />
assume some familiarity with dynamics and control of physical systems.<br />
<br />
=== Summary ===<br />
The following are the key concepts covered in this chapter:<br />
<ol><br />
<li><br />
The equations of motion for a mechanical system with Lagrangian <amsmath>L =<br />
T(q,\dot q)<br />
- V(q)</amsmath> satisfies ''Lagrange's equations'':<br />
<center><amsmath><br />
\frac{d}{dt} \frac{\partial L}{\partial \dot q_i} - \frac{\partial<br />
L}{\partial q_i} = \Upsilon_i,<br />
</amsmath></center><br />
where <amsmath>q \in {\mathbb R}^n</amsmath> is a set of generalized coordinates for the<br />
system and <amsmath>\Upsilon \in {\mathbb R}^n</amsmath> represents the vector of<br />
generalized external forces.<br />
</li><br />
<br />
<li> The equations of motion for a rigid body with configuration<br />
<amsmath>g(t) \in \mbox{\it SE}(3)</amsmath> are given by the ''Newton-Euler equations'':<br />
<center><amsmath><br />
\begin{bmatrix} mI & 0 \\ 0 & \cal I \end{bmatrix} \begin{bmatrix}<br />
\dot v^b \\ \dot \omega^b \end{bmatrix} +<br />
\begin{bmatrix} \omega^b \times m v^b \\ \omega^b \times {\cal I}<br />
\omega^b \end{bmatrix} = F^b,<br />
</amsmath></center><br />
where <amsmath>m</amsmath> is the mass of the body, <amsmath>\cal I</amsmath> is the inertia tensor, and<br />
<amsmath>V^b = (v^b, \omega^b)</amsmath> and <amsmath>F^b</amsmath> represent the instantaneous body<br />
velocity and applied body wrench.<br />
</li><br />
<br />
<li> The equations of motion for an open-chain robot manipulator can be<br />
written as<br />
<center><amsmath><br />
M(\theta) \ddot\theta +<br />
C(\theta, \dot\theta) \dot\theta +<br />
N(\theta, \dot\theta)<br />
= \tau<br />
</amsmath></center><br />
where <amsmath>\theta \in {\mathbb R}^n</amsmath> is the set of joint<br />
variables for the robot and <amsmath>\tau \in {\mathbb R}^n</amsmath><br />
is the set of actuator forces applied at the joints. The dynamics of<br />
a robot manipulator satisfy the following properties:<br />
* <amsmath>M(\theta)</amsmath> is symmetric and positive definite.<br />
* <amsmath>\dot M - 2C \in {\mathbb R}^{n \times n}</amsmath> is a skew-symmetric matrix.<br />
</li><br />
<br />
<li> <br />
An equilibrium point <amsmath>x^*</amsmath> for the system <amsmath>\dot x = f(x,t)</amsmath> is ''locally asymptotically stable'' if all solutions which start near <amsmath>x^*</amsmath><br />
approach <amsmath>x^*</amsmath> as <amsmath>t \to \infty</amsmath>. Stability can be checked using the<br />
''direct method of Lyapunov'', by finding a locally positive<br />
definite function <amsmath>V(x,t) \geq 0</amsmath> such that <amsmath>-\dot V(x,t)</amsmath> is a<br />
locally positive definite function along trajectories of the system.<br />
In situations in which <amsmath>-\dot V</amsmath> is only positive semi-definite,<br />
''Lasalle's invariance principle'' can be used to check asymptotic<br />
stability. Alternatively, the ''indirect method of Lyapunov'' can<br />
be employed by examining the linearization of the system, if it<br />
exists. Global exponential stability of the linearization implies<br />
local exponential stability of the full nonlinear system.<br />
</li><br />
<br />
<li> Using the form and structure of the robot dynamics, several control<br />
laws can be shown to track arbitrary trajectories. Two of the most<br />
common are the ''computed torque control law'',<br />
<center><amsmath><br />
\tau = M(\theta) (\ddot \theta_d + K_v \dot e + K_p e) + <br />
C(\theta,\dot \theta) \dot \theta + N(\theta,\dot \theta),<br />
</amsmath></center><br />
and an ''augmented PD control law'',<br />
<center><amsmath><br />
\tau = M(\theta) \ddot \theta_d + <br />
C(\theta, \dot \theta) \dot \theta_d + <br />
N(\theta, \dot \theta) +<br />
K_v \dot e + K_p e.<br />
</amsmath></center><br />
Both of these controllers result in exponential trajectory tracking of<br />
a given joint space trajectory. Workspace versions of these control<br />
laws can also be derived, allowing end-effector trajectories to be<br />
tracked without solving the inverse kinematics problem. Stability of<br />
these controllers can be verified using Lyapunov stability.<br />
</li><br />
</ol><br />
<br />
=== Errata ===<br />
<ncl>Robot Dynamics and Control errata {{version}}</ncl><br />
* [[:Category:Robot Dynamics and Control errata|Full list of errata]]<br />
* {{submitbug}}<br />
<br />
=== Additional information ===</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Template:Version&diff=1575Template:Version2009-08-16T21:04:42Z<p>Murray: </p>
<hr />
<div>v1</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Category:Robot_Dynamics_and_Control_errata_v1&diff=1574Category:Robot Dynamics and Control errata v12009-08-16T21:02:22Z<p>Murray: </p>
<hr />
<div>This page contains a list of all errata for the ''online version'' of the first edition of {{ch:Robot Dynamics and Control}}. For a list of all errata in the first edition, see the [[first edition]] page.</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Category:Robot_Dynamics_and_Control_errata&diff=1573Category:Robot Dynamics and Control errata2009-08-16T20:59:02Z<p>Murray: </p>
<hr />
<div>This page contains a list of all errata for {{ch:Robot Dynamics and Control}}.</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Category:Version_1_errata&diff=1572Category:Version 1 errata2009-08-16T20:56:57Z<p>Murray: </p>
<hr />
<div>The errata below appear in the ''online version'' of the first edition ("version 1"). For a list of all errata in the first edition, see the [[first edition]] page.</div>Murrayhttps://www.cds.caltech.edu/~murray/mlswiki/index.php?title=Category:First_edition_errata&diff=1571Category:First edition errata2009-08-16T20:56:20Z<p>Murray: </p>
<hr />
<div>The errata below appear in the ''online version'' of the first edition. For a list of all errata in the first edition, see the [[first edition]] page.</div>Murray