forked from RussTedrake/underactuated
-
Notifications
You must be signed in to change notification settings - Fork 0
/
drake.html
199 lines (151 loc) · 9.55 KB
/
drake.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<!DOCTYPE html>
<html>
<head>
<title>Ch. 21 - Drake</title>
<meta name="Ch. 21 - Drake" content="text/html; charset=utf-8;" />
<link rel="canonical" href="http://underactuated.mit.edu/drake.html" />
<script src="https://hypothes.is/embed.js" async></script>
<script type="text/javascript" src="chapters.js"></script>
<script type="text/javascript" src="htmlbook/book.js"></script>
<script src="htmlbook/mathjax-config.js" defer></script>
<script type="text/javascript" id="MathJax-script" defer
src="htmlbook/MathJax/es5/tex-chtml.js">
</script>
<script>window.MathJax || document.write('<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js" defer><\/script>')</script>
<link rel="stylesheet" href="htmlbook/highlight/styles/default.css">
<script src="htmlbook/highlight/highlight.pack.js"></script> <!-- http://highlightjs.readthedocs.io/en/latest/css-classes-reference.html#language-names-and-aliases -->
<script>hljs.initHighlightingOnLoad();</script>
<link rel="stylesheet" type="text/css" href="htmlbook/book.css" />
</head>
<body onload="loadChapter('underactuated');">
<div data-type="titlepage">
<header>
<h1><a href="index.html" style="text-decoration:none;">Underactuated Robotics</a></h1>
<p data-type="subtitle">Algorithms for Walking, Running, Swimming, Flying, and Manipulation</p>
<p style="font-size: 18px;"><a href="http://people.csail.mit.edu/russt/">Russ Tedrake</a></p>
<p style="font-size: 14px; text-align: right;">
© Russ Tedrake, 2023<br/>
Last modified <span id="last_modified"></span>.</br>
<script>
var d = new Date(document.lastModified);
document.getElementById("last_modified").innerHTML = d.getFullYear() + "-" + (d.getMonth()+1) + "-" + d.getDate();</script>
<a href="misc.html">How to cite these notes, use annotations, and give feedback.</a><br/>
</p>
</header>
</div>
<p><b>Note:</b> These are working notes used for <a
href="https://underactuated.csail.mit.edu/Spring2023/">a course being taught
at MIT</a>. They will be updated throughout the Spring 2023 semester. <a
href="https://www.youtube.com/channel/UChfUOAhz7ynELF-s_1LPpWg">Lecture videos are available on YouTube</a>.</p>
<table style="width:100%;"><tr style="width:100%">
<td style="width:33%;text-align:left;"><a class="previous_chapter" href=rl_policy_search.html>Previous Chapter</a></td>
<td style="width:33%;text-align:center;"><a href=index.html>Table of contents</a></td>
<td style="width:33%;text-align:right;"><a class="next_chapter" href=multibody.html>Next Chapter</a></td>
</tr></table>
<script type="text/javascript">document.write(notebook_header('drake'))
</script>
<!-- EVERYTHING ABOVE THIS LINE IS OVERWRITTEN BY THE INSTALL SCRIPT -->
<chapter class="appendix" style="counter-reset: chapter 0"><h1>Drake</h1>
<p><drake></drake> is the main software toolbox that we use for this text,
which in fact originated in a large part due to the MIT underactuated course.
The <drake></drake> website is the main source for information and
documentation. The goal of this chapter is to provide any additional
information that can help you get up and running with the examples and
exercises provided in these notes.</p>
<section><h1>Pydrake</h1>
<p><drake></drake> is primarily a C++ library, with rigorous coding
standards and a maturity level intended to support even professional
applications in industry. In order to provide a gentler introduction, and
to facilitate rapid prototyping, I've written these notes exclusively in
python, using Drake's python bindings (pydrake). These bindings are less
mature than the C++ backend; your feedback (and even contributions) are very
welcome. It is still improving rapidly.</p>
<p>In particular, while the C++ API documentation is excellent, the autogenerated python docs are still a work in progress. I currently recommend using the <a href="https://drake.mit.edu/doxygen_cxx/">C++ documentation</a> to find what you need, then checking the <a href="https://drake.mit.edu/pydrake/">Python documentation</a> only if you need to understand how the class or method is spelled in pydrake.</p>
<p>There are also a number of <a href="https://github.com/RobotLocomotion/drake/tree/master/tutorials">tutorials</a> in <drake></drake> that can help you get started.</p>
</section>
<section id="notebooks"><h1>Online Jupyter Notebooks</h1>
<p>I will provide nearly all examples and exercises in the form of a <a
href="http://jupyter.org/">Jupyter Notebook</a> so that we can leverage the
fantastic and relatively recent availability of (free) cloud resources.</p>
<subsection><h1>Running on Deepnote</h1>
<p>We'll use Deepnote as the primary platform for the course. After
following any of the links from the chapters, you should:
</p>
<ol>
<li>Log in (the free account will be sufficient for this class)</li>
<li>"Duplicate" the document. Icon is in the top right next to
Login.</li>
<li>Run all of the cells (can use the "Run notebook" icon just above this
cell)</li>
<li>Many of the notebooks use <a
href="https://github.com/rdeits/meshcat">MeshCat</a> for interactive
visualizations. Click on the url printed just below "StartMeshcat"
(often the second code cell of the notebook) to see the MeshCat
window.</li>
</ol>
</subsection>
<subsection><h1>Running on Google Colab</h1>
<p>As of now, Drake no longer supports Google Colab, which is stuck on
Ubuntu 18.04 and Python 3.7. We will try to support it again if/when
they upgrade.</p>
<!--
<p>Although I believe that Deepnote provides a better and more reliable
experience overall, there are a few reasons to be able to also run the
notebooks on Google Colab. It has very convenient connections to Google
Drive, and also substantial free GPU resources (useful for training big
neural nets).</p>
<p>To run any notebook on Colab, just open the file in colab using a
direct link to the relevant notebook, e.g.: <a
href="https://colab.research.google.com/github/RussTedrake/underactuated/blob/master/intro.ipynb">https://colab.research.google.com/github/RussTedrake/underactuated/blob/master/intro.ipynb</a>.
Then you must manually add the following line in a code cell at the top
of the notebook (and run it once)
<pre><code class="python">!pip install underactuated</code></pre>
</p>
<p>Note: Drake's pip wheels are only updated at each (monthly) release.
During the semester, I will often use bleeding-edge features from Drake;
they will be available in Deepnote immediately, but will only work in
Colab after the next monthly release.</p>
-->
</subsection>
<subsection><h1>Enabling licensed solvers</h1>
<p>You can enabled more powerful solvers for
<code>MathematicalProgram</code> if you have a license (most are free for
academics). Please see this <a
href="https://deepnote.com/workspace/russtedrake-b58d8141-6691-43e8-ad76-0575b319c8b8/project/Enabling-licensed-solvers-on-Deepnote-7581ca0c-04be-4632-9108-f0426b6c3fbb/%2Flicensed_solvers.ipynb">tutorial</a>
for instructions.</p>
</subsection>
</section>
<section><h1>Running on your own machine</h1>
<p>As you get more advanced, you will likely want to run (and extend) these examples on your own machine. On platforms that Drake supports (the latest two releases of Mac and Ubuntu), it should be as simple as running
<pre><code class="python">pip install underactuated</code></pre>
In general, I would strongly recommend running <code>pip</code>
commands in a <a
href="https://python-guide-cn.readthedocs.io/en/latest/dev/virtualenvs.html">virtualenv</a>.</p>
<p></p>The <drake></drake> website also has a number of alternative <a href="https://drake.mit.edu/installation.html">installation options</a>, including precompiled binaries and Docker instances.</p>
<p>You'll likely want to start from the underactuated root directory. Then launch your notebook with:</p>
<div><pre class="highlight"><code>jupyter notebook</code></pre></div>
<p>The examples for each chapter that has them will be in a .ipynb file
right alongside the chapter's html file, and the notebook exercises are
all located in the <code>exercises</code> subdirectory.
</section>
<section><h1>Getting help</h1>
<p>If you have trouble with <drake></drake>, please follow the advice <a href="https://drake.mit.edu/getting_help.html">here</a>. If you have trouble with the underactuated repo, you can check for known issues (and potentially file a new one) <a href="https://github.com/RussTedrake/underactuated/issues">here</a>.</p>
</section>
<div style="height:30px"></div>
</chapter>
<!-- EVERYTHING BELOW THIS LINE IS OVERWRITTEN BY THE INSTALL SCRIPT -->
<div id="references"></div>
<table style="width:100%;"><tr style="width:100%">
<td style="width:33%;text-align:left;"><a class="previous_chapter" href=rl_policy_search.html>Previous Chapter</a></td>
<td style="width:33%;text-align:center;"><a href=index.html>Table of contents</a></td>
<td style="width:33%;text-align:right;"><a class="next_chapter" href=multibody.html>Next Chapter</a></td>
</tr></table>
<div id="footer">
<hr>
<table style="width:100%;">
<tr><td><a href="https://accessibility.mit.edu/">Accessibility</a></td><td style="text-align:right">© Russ
Tedrake, 2023</td></tr>
</table>
</div>
</body>
</html>