\documentclass{article}

\PassOptionsToPackage{skip=0pt}{parskip}
\input{~/projects/latex/janishutz-helpers.tex}

% Configuration
\usepackage{bm}
\usepackage{lmodern}
\setFontType{sans}

\renewcommand{\subsectionnumbering}{section}
\renewcommand{\numberingpreset}{off}
\renewcommand{\definitionShortNamingEN}{Def}
\renewcommand{\remarkShortNamingEN}{Rem}
\renewcommand{\lemmaShortNamingEN}{Lem}
\renewcommand{\theoremShortNamingEN}{Thm}

\renewcommand{\descriptorNameDisplay}[1]{\textbf{#1}}

\fboxsep 1pt
\fboxrule 0.1pt

% Extra commands
\renewcommand{\vec}[1]{\bm{#1}}
\newcommand{\mat}[1]{\bm{#1}}

\setupCheatSheet{Autonomous Mobile Robots}


\begin{document}
\noverticalspacing

\vspace*{0mm}

\begin{center}
    \begin{Large}
        \textbf{Autonomous Mobile Robots}
    \end{Large}

    \textsc{Cheat Sheet by {\color{MidnightBlue}\href{https://janishutz.com}{Janis Hutz}}}

    \textsc{ETHZ, FS2026}
\end{center}


% TODO: Graphics
\section{Introduction}
\input{parts/00_basics/00_probability.tex}
\input{parts/00_basics/01_measurement-models.tex}
% TODO: Add this (especially law of cosines)
% \input{parts/00_basics/02_trigonometry.tex}

\section{Locomotion \& Kinematics}
\input{parts/01_kinematics/00_intro.tex}
\input{parts/01_kinematics/01_forward.tex}
\input{parts/01_kinematics/02_inverse.tex}
\input{parts/01_kinematics/03_temporal-models.tex}
\input{parts/01_kinematics/04_rigid-body-imu-kinematics.tex}
\input{parts/01_kinematics/05_rigid-body-dynamics.tex}
\input{parts/01_kinematics/06_wheeled-robot.tex}
% \input{parts/01_kinematics/}

\section{Sensors \& Actuators}
\input{parts/02_Sensors-Actuators/00_intro.tex}
\input{parts/02_Sensors-Actuators/01_gps.tex}
\input{parts/02_Sensors-Actuators/02_actuators.tex}
\input{parts/02_Sensors-Actuators/03_cameras.tex}
\input{parts/02_Sensors-Actuators/04_depth-range.tex}
% \input{parts/02_Sensors-Actuators/}

\section{Multi-Sensor Estimation}
\input{parts/03_multi-sensor-estimation/00_linearization.tex}
\input{parts/03_multi-sensor-estimation/01_least-squares.tex}
\input{parts/03_multi-sensor-estimation/02_nonlinear-least-squares.tex}
\input{parts/03_multi-sensor-estimation/03_bayes-filters.tex}
\input{parts/03_multi-sensor-estimation/04_particle-filter.tex}
\input{parts/03_multi-sensor-estimation/05_kalman-filter.tex}
\input{parts/03_multi-sensor-estimation/06_extended-kalman-filter.tex}
% \input{parts/03_multi-sensor-estimation/}

\section{SLAM to Spatial AI}
\input{parts/04_vision/00_keypoints.tex}
\input{parts/04_vision/01_bootstrapping.tex}
\input{parts/04_vision/02_place-recognition.tex}
\input{parts/04_vision/03_mapping.tex}
\input{parts/04_vision/04_dense-tracking_loop-closure.tex}
% \input{parts/04_vision/}

\section{Planning \& Control}
\input{parts/05_planning-control/00_feedback-control/00_siso-mimo.tex}
\input{parts/05_planning-control/00_feedback-control/01_pid.tex}
\input{parts/05_planning-control/00_feedback-control/02_lqr.tex}
\input{parts/05_planning-control/00_feedback-control/03_mpc.tex}
\input{parts/05_planning-control/01_motion-planning-exploration/00_intro.tex}
\input{parts/05_planning-control/01_motion-planning-exploration/01_a-star-algorithm.tex}
\input{parts/05_planning-control/01_motion-planning-exploration/02_rrt.tex}
\input{parts/05_planning-control/01_motion-planning-exploration/03_exploration.tex}
\input{parts/05_planning-control/01_motion-planning-exploration/04_collision-avoidance.tex}
\input{parts/05_planning-control/02_learning-to-act/00_intro.tex}
\input{parts/05_planning-control/02_learning-to-act/01_mdp.tex}
\input{parts/05_planning-control/02_learning-to-act/02_reinforcement-learning.tex}
% \input{parts/05_planning-control/02_learning-to-act/}
% \input{parts/05_planning-control/}

\end{document}
