[AMR] Add feedback loops

This commit is contained in:
2026-08-09 11:02:31 +02:00
parent a8b3bd7b20
commit 06df67934c
11 changed files with 16 additions and 2 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

@@ -4,3 +4,6 @@ $\vec{b}_C$ const bias, $\vec{b}$ time bias, $\mat{M}$ missal., $\vec{n} \sim \c
\hl{Finding}: Is in $W$-frame: may need $\mat{T}_{BW}$ or $\mat{R}_{BW}$. \hl{Finding}: Is in $W$-frame: may need $\mat{T}_{BW}$ or $\mat{R}_{BW}$.
Also see Sec.~\ref{sec:sensors} Also see Sec.~\ref{sec:sensors}
Feedback loop:
\includegraphics[width=0.6\columnwidth]{assets/loop-main.png}
@@ -5,7 +5,7 @@
Model \bi{robot dyn} as \bi{Cont-time non-lin. system of ODE}:\\ Model \bi{robot dyn} as \bi{Cont-time non-lin. system of ODE}:\\
$\dot{\vec{x}} = \vec{f}_C(\vec{x}(t), \vec{u}(t), \vec{w}(t))$, measurement $\vec{z}(t) = \vec{h}(\vec{x}(t)) + \vec{v}(t)$. $\dot{\vec{x}} = \vec{f}_C(\vec{x}(t), \vec{u}(t), \vec{w}(t))$, measurement $\vec{z}(t) = \vec{h}(\vec{x}(t)) + \vec{v}(t)$.
With: $\pardiff{t}\vec{x}(t) = f_C(\vec{x}(t), \vec{u}(t))$ the model for the robot state update and $\vec{h}(\vec{x}(t))$ the model for the measurements (e.g. for IMU) With: $\pardiff{t}\vec{x}(t) = \vec{f}_C(\vec{x}(t), \vec{u}(t))$ the model for the robot state update and $\vec{h}(\vec{x}(t))$ the model for the measurements (e.g. for IMU)
\vspace{0.5mm} \vspace{0.5mm}
\hrule \hrule
@@ -1,3 +1,9 @@
Below feedback loops for PID and LQR
\includegraphics[width=0.49\columnwidth]{assets/loop-pid.png}
\includegraphics[width=0.5\columnwidth]{assets/loop-lqr.png}
\subsection{MPC} \subsection{MPC}
\bi{Cost function} ($p(\vec{x}_N)$ \textit{terminal cost}, sum the \textit{stage cost}) \bi{Cost function} ($p(\vec{x}_N)$ \textit{terminal cost}, sum the \textit{stage cost})
\[ \[
@@ -1,4 +1,3 @@
\newpage
\subsubsection{Rapidly-Exploring Random Tree (RRT)} \subsubsection{Rapidly-Exploring Random Tree (RRT)}
\begin{algorithm} \begin{algorithm}
\small \small
@@ -27,6 +26,9 @@
\EndProcedure \EndProcedure
\end{algorithmic} \end{algorithmic}
\end{algorithm} \end{algorithm}
Notes: \texttt{nearestConfiguration} may be on edge, then edge is split;
\texttt{stoppingConfiguration} returns furthest config $x_f$ on segment $x_n$ to $x$ that produces collision-free edge $(x_n, x_f)$
Returns a collision-free path as graph. Need nearest neighbour search. Returns a collision-free path as graph. Need nearest neighbour search.
Extension to RRT* to make path better: Extension to RRT* to make path better:
\begin{algorithm} \begin{algorithm}
@@ -26,3 +26,6 @@ $\varepsilon$ is prob. to act randomly, $1 - \varepsilon$ is prob. to act on pol
Value-based (estimate val or $Q$-func and extract pol., e.g. Q-Learn), Value-based (estimate val or $Q$-func and extract pol., e.g. Q-Learn),
Actor-Critic (estim. val or $Q$ of curr. pol., improve pol., e.g. A3C, SAC), Actor-Critic (estim. val or $Q$ of curr. pol., improve pol., e.g. A3C, SAC),
Policy-Gradient (diff. expect. reward w.r.t. params of policy network, e.g. REINFORCE) Policy-Gradient (diff. expect. reward w.r.t. params of policy network, e.g. REINFORCE)
\includegraphics[width=0.5\columnwidth]{assets/loop-rl.png}
\includegraphics[width=0.5\columnwidth]{assets/loop-drl.png}