Kris Hauser
University of Illinois at Urbana-Champaign
Last update: 6/12/2023
Preface 90% complete
Section I. Introduction
Section II. Modeling
Section III. Motion Planning
Section IV. Dynamics and Control
Section V. Perception incomplete
Section VI. Learning and Calibration incomplete
Section VII. Robotic Systems in Practice incomplete
Appendix A. Mathematical Preliminaries
Appendix B. Numerical Methods
Appendix C. Computational Methods
This book is a work in progress! The source material is my lecture notes from courses at Indiana University, Duke University, and University of Illinois at Urbana-Champaign, which are progressively being converted to Jupyter Notebook and HTML format.
The conversion tools that I am using may create broken matrix equations, links, references, or incorrectly formatted figures. I am trying to correct them as I go, but I may miss some. If you notice anything that needs correcting, please email me at kkhauser@illinois.edu. Or better yet, make the corrections in the notebook directly and issue a Git pull request.
The book comes in HTML and Jupyter Notebook formats, and running the full Jupyter Notebook provides the most complete experience, with inline quizzes and code examples that you can visualize and edit live in your browser.
There are three routes to running the Jupyter notebooks:
Binder is a very nice service that we've pre-configured to have all dependencies needed to run this book. Just click here:
That's it!
Binder pros:
Binder cons:
I am progressively updating the book to be compatible with Google Colab, and this is the second-easiest way to get started. Just click on the following link:
Colab pros:
Colab cons:
Colab installation:
No installation needed.
To run interactive quizzes and code, you will need to insert and run a code cell containing the following code:
%cd ~
!git clone --depth 1 https://github.com/krishauser/RoboticSystemsBook
%cd RoboticSystemsBook
import rsbook_code
!pip install klampt
which will import the code examples for this book and install Klampt.
Jupyter Notebook is the native source of this book, and installing this on your machine will allow you to run truly interactive examples.
Jupyter pros
Jupyter cons
Jupyter Installation:
Install software for running the notebook:
On most systems (Linux, Windows, OSX), the Klamp't Python API can be installed using pip
as follows:
pip install klampt
(Note that the Klamp't source is the most up-to-date way to install Klamp't, and is mostly pain-free on Linux and OSX platforms. )
To install Klampt-jupyter-extension, run
git clone https://github.com/krishauser/Klampt-jupyter-extension.git
cd Klampt-jupyter-extension
make install-user
cd ..
Next, to enable the best reading experience, we will install the jupyter_contrib_nbextensions
package and enable the "(some) LaTeX environments for Jupyter", "Table of Contents", and "Codefolding" Jupyter Notebook plugins. To do so, run
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
jupyter nbextension enable --py widgetsnbextension
jupyter nbextension enable codefolding/main
jupyter nbextension enable latex_envs/latex_envs
jupyter nbextension enable toc2/main
jupyter nbextension enable equation-numbering/main
git clone https://github.com/krishauser/RoboticSystemsBook
cd RoboticSystemsBook
jupyter notebook
This will launch a web browser interface to Jupyter.
Book.ipynb
). Happy reading!(Note: you must run Jupyter in the RoboticSystemsBook
folder to have access to the interactive quizzes and exercises, which use code in the rsbook_code
folder)
Jupyter Notebook LaTeX rendering uses MathJAX inside Markdown, which occasionally has trouble rendering complex equations. If you see stray code like = \begin{equation}
etc, this is a known rendering problem with multiple matrices. It seems like this problem is more prevalent in static HTML and Colab; try opening the book in a native Jupyter Notebook or on Binder if these rendering issues prevent you from understanding the equation.