Skip to content

Commit de80e28

Browse files
committed
forgot to zola build?
1 parent 634a845 commit de80e28

5 files changed

Lines changed: 88 additions & 58 deletions

File tree

config.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
base_url = "https://um-arm-lab.github.io/lucca"
1+
base_url = "https://um-arm-lab.github.io/claps"
22
compile_sass = true
33
build_search_index = false
44
generate_feeds = false
@@ -13,4 +13,4 @@ smart_punctuation = true
1313
favicon = false
1414
large_card = true
1515
footer_text = "This website is built using <a href='https://www.getzola.org' target='_blank'>Zola</a> and the <a href='http://github.com/aterenin/academic-paper/' target='_blank'>Academic Paper</a> theme, which is <a href='https://jeffhuang.com/designed_to_last/' target='_blank'>designed to last</a>."
16-
server_side_katex = true
16+
server_side_katex = true

content/_index.md

Lines changed: 28 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -40,76 +40,49 @@ In this work, we rigorously analyze configuration errors using Lie groups, exten
4040

4141
</div>
4242

43-
# Problem Statement
44-
45-
**Setting**: Let `$q\in \mathcal Q$` be the configuration of a
46-
robot, `$\dot q \in Tq \mathcal Q$` be
47-
the generalized velocity, and `$s := (q,\dot q) \in T\mathcal Q$` its state.
48-
We consider both holonomic systems and robots subject to
49-
*nonholonomic constraints*, i.e., non-integrable constraints on
50-
the allowable velocities. We observe
51-
the true dynamical system state at discrete points `$s_k := s(k\Delta t)$`, where `$\Delta t$` is the sampling time between
52-
measurements. We consider systems with time-invariant
53-
stochastic dynamics whose `$\mathcal Q$` can be represented by the
54-
matrix Lie group `$SE(2)$` and `$SE(3)$`. This class is broad,
55-
encompassing unicycles, differential drive vehicles, car-like
56-
systems, quadrotors, surface vessels, underwater vehicles,
57-
satellites, quadrupeds modeled by their center of mass,
58-
and so on. We write the true
59-
unknown dynamics of the observable discrete process as
43+
{% problem_columns() %}
44+
### Problem Setting
45+
Let `$q\in \mathcal Q$` be the robot configuration, `$\dot q \in T_q \mathcal Q$` the generalized velocity, and `$s := (q,\dot q) \in T\mathcal Q$` the state. We consider holonomic and *nonholonomic* systems whose `$\mathcal Q$` is the Lie group `$SE(2)$` or `$SE(3)$` (unicycles, car-like robots, quadrotors, surface/underwater vehicles, satellites, quadrupeds’ COM, ...). The *unknown dynamics* evolve as
6046
```
6147
$$
62-
s_{k+1} = f(s_k, u_k, w_k), w_k P_{noise},
48+
s_{k+1} = f(s_k, u_k, w_k), \qquad w_k \sim P_{noise},
6349
$$
6450
```
65-
where `$f$` is an *unknown* deterministic function, `$w_k$` is a
66-
stochastic term drawn iid from an *unknown* distribution `$P_{noise}$`, and `$u_k \in \mathbb R^m$` is the known control input. Inaccuracies in
67-
modeling `$f$` may arise e.g., from domain shifts between fitting
68-
and deployment, and result in *epistemic uncertainty*. On the
69-
other hand, `$w_k$` makes the dynamics stochastic, introducing
70-
*aleatoric uncertainty*, and may represent external disturbances
71-
such as wind gusts, wheel slippage, or terrain bumps.
72-
73-
**Objective**: Our goal is to provide, for a given admissible action `$u_{des}$`, a C-Space prediction region `$C^q \subseteq \mathcal Q$` that provably contains the next true *unknown system configuration* `$q_1$` with, at
74-
least, a *user-defined probability* `$(1-\alpha)$`, i.e.
51+
where `$f$` is *unknown*, `$w_k$` is an iid disturbance drawn from an *unknown* distribution, and `$u_k \in \mathbb R^m$` is the control input. Inaccuracies
52+
in modeling `$f$` may arise e.g., from domain shifts between fitting and deployment, and result in *epistemic uncertainty*. Additionally,
53+
`$w_k$` introduces *aleatoric uncertainty*, and may represent external disturbances such as wind gusts, wheel slippage, or terrain bumps.
54+
---
55+
### Objective
56+
For a given admissible action `$u_{des}$`, provide a C-Space prediction region `$C^q \subseteq \mathcal Q$` that contains the resulting (unknown) configuration `$q_1$` with probability at least `$(1-\alpha)$`:
7557
```
7658
$$
77-
\mathbb{P}(q_1 \in \mathcal C^q ) \ge (1 − \alpha),
59+
\mathbb{P}(q_1 \in \mathcal C^q ) \ge 1 - \alpha, \quad \alpha \in (0,1).
7860
$$
7961
```
80-
where `$\alpha \in (0,1)$` is the user-set acceptable failure-probability.
81-
While purely achieving this is trivial, e.g., by predicting the
82-
entire space `$C^q =\mathcal Q$`, we additionally want `$C^q$` to be as
83-
*tight/volume-efficient* as possible to make it practical for
84-
downstream robotic tasks such as *safe control*. We do not make strong assumptions about the fidelity of `$\tilde f$`, or the nature of the stochastic disturbances.
62+
where `$\alpha$` is the user-set acceptable failure probability. While purely achieving this goal is trivial, e.g., by predicting the entire space `$(C^q = \mathcal Q)$`, we additionally want `$C^q$` to be as *tight/volume-efficient* as possible, to make it practical for downstream robotic tasks such as *safe control*. We do not make strong assumptions about the fidelity of `$\tilde{f}$`, or the nature of the stochastic disturbances.
63+
{% end %}
8564

8665
# CLAPS
8766

8867
**CLAPS** uses a dataset of state transitions `$(D_{cal})$` to *calibrate* the uncertainty estimates provided by approximate dynamics models.
8968
**CLAPS** can be applied as a *post-hoc calibration layer* on top of existing Lie-algebraic Gaussian uncertainty estimators (e.g., Invariant EKF), turning their approximate covariances into *provably calibrated ones*.
90-
By using a *symmetry-respective score metric*, our approach produces prediction regions that are more smaller than existing conformal prediction baselines that treat the robot's configuration as Euclidean.
69+
By using a *symmetry-respective score metric*, our approach produces prediction regions that are more volume-efficient than existing conformal prediction baselines that treat the robot's configuration as Euclidean.
9170

9271
{% figure(alt=["CLAPS Method Diagram"] src=["./method_diagram3v2.png"] dark_invert=[true]) %}
9372
**Method Figure.** **C**onformal **L**ie-Group **A**ction **P**rediction **S**ets | Offline: a dataset of state transitions is used jointly with an approximate dynamical model to derive a rigorous symmetry-aware probabilistic error bound on the configuration predictions. Online: our algorithm takes in a desired action `$u_{des}$` and computes a *calibrated C-Space prediction region* `$\mathcal{C}^q$` that is marginally guaranteed to contain the true configuration resulting from executing `$u_{des}$`.
9473
{% end %}
9574

96-
The prediction region constructed by **CLAPS** `$(C^q \subseteq Q)$` can be used for probably-safe control in three main ways:
97-
- Configuration Check: a (sample) configuration `$g$` belongs in `$C^q$` if `$\sqrt{\log(\tilde{g}^{-1}g)^\top \tilde{\Sigma}^{-1}\log(\tilde{g}^{-1}g)} \le \chi^2_{\alpha}(\dim \mathfrak g)$` --- quick to evaluate in batch
98-
- C-space set: The `$C^q$` can be reconstructed by Alg. 2, for example to check if `$C^q \subseteq \mathcal Q_{safe}$`, for a known safe set `$\mathcal Q_{safe} \subseteq \mathcal Q$`.
99-
- Workspace set: `$C^q$` can be inflated by the robot's radius and mapped to the workspace `$(\mathbb R^2)$` to perform collision checks with known obstacles.
100-
101-
For more details, please refer to Section `$\S$`V-C in the paper.
75+
The prediction region constructed by **CLAPS** `$(C^q \subseteq Q)$` can be used for probably-safe control in three main ways (for more details refer to Section `$\S$`V-C):
76+
1. Configuration Check: a (sample) configuration `$g$` belongs in `$C^q$` if `$\sqrt{\log(\tilde{g}^{-1}g)^\top \tilde{\Sigma}^{-1}\log(\tilde{g}^{-1}g)} \le \chi^2_{\alpha}(\dim \mathfrak g)$` --- quick to evaluate in batch
77+
2. C-space set: The `$C^q$` can be reconstructed by Alg. 2, for example to check if `$C^q \subseteq \mathcal Q_{safe}$`, for a known safe set `$\mathcal Q_{safe} \subseteq \mathcal Q$`.
78+
3. Workspace set: `$C^q$` can be inflated by the robot's radius and mapped to the workspace `$(\mathbb R^2)$` to perform collision checks with known obstacles.
10279

10380
# Experiments
104-
We compare **CLAPS** in both simulation (JetBot) and hardware (MBot) against seven baselines to demonstrate its improved *efficiency* and *representation quality*.
105-
In both cases, we model the system as a second-order unicycle.
106-
We perform standard system identification to estimate the inertial properties (mass and inertia)
107-
108-
109-
## JetBot Experiments (Simulation)
110-
111-
In Isaac Sim, we independently sampled perturbations to the commanded actions to introduce aleatoric uncertainty into the system. Additionally, epistemic uncertainty arose from unmodeled effects (see paper) and imperfections in the inertial property estimation.
81+
We compare **CLAPS** against seven baselines in both simulation (JetBot) and hardware (MBot) to demonstrate its improved *efficiency* and *representation quality*.
82+
We model both systems as a second-order unicycles, and perform standard system identification to estimate the inertial properties.
11283

84+
**A) JetBot Experiments (Simulation)**<br>
85+
&emsp;In Isaac Sim, we independently sampled additive perturbations to `$u_{des}$`, introducing aleatoric uncertainty. This leads to the well-known banana-shaped distributions seen below. Epistemic uncertainty arose from unmodeled effects (e.g., friction), and imperfections in the mass/inertia estimation.
11386
The Figure below demonstrates **CLAPS**' ability to represent the underlying dynamics uncertainty of the unknown system (MC particles).
11487
{% figure(alt=["Workspace method comparison plot"] src=["contour_comparison_val_isaac_0007_vs_val_isaac_0590_clear.png"] dark_invert=[true] style="width:80%") %}
11588
**Workspace (`$\mathbb{R}^2$`) footprint**. Workspace marginalization of the C-Space regions generated by the methods, over two of the 625 JetBot validation trials. Left: lower linear and angular velocity. Right: higher velocity case.
@@ -127,20 +100,20 @@ Quantitatively, **CLAPS** achieves the highest average Intersection over Union (
127100

128101
{{ figure(alt=["JetBot Performance Table"] src=["table_jetbot.svg"] dark_invert=[true] style="width:80%") }}
129102

130-
Below we showcase a visualization of the C-space regions `$C^q$` constructed by the different methods in three of the 625 validation trials. The State Space (SS) baselines produce hyperellipsoids in configuration space, due to treating it as Euclidean. Instead, both InEKF and CLAPS produce symmetry-respective prediction regions, better capturing the underlying uncertainty.
131-
{{ figure(src = ["./cspace_videos/Isaac_Jetbot_over_confident_0300_3D_rotation.mp4", "./cspace_videos/Isaac_Jetbot_over_confident_0330_3D_rotation.mp4","./cspace_videos/Isaac_Jetbot_over_confident_0336_3D_rotation.mp4"], alt = ["C-space visualization - scenario 0300", "C-space visualization - scenario 0301"], dark_background=[true]) }}
132-
103+
Below we visualize the C-space regions `$C^q$` constructed by the different methods in three of the 625 validation trials. The State Space (SS) baselines produce hyperellipsoids in configuration space, due to treating it as Euclidean. Instead, both the Invariant Kalman Filter (InEKF) and CLAPS produce symmetry-respective prediction regions, better capturing the underlying uncertainty.
104+
While the uncertainty estimates provided by the InEKF are approximate, **CLAPS** provides provably calibrated prediction regions suitable for safe-control.
133105

106+
{{ figure(src = ["./cspace_videos/Isaac_Jetbot_over_confident_0300_3D_rotation.mp4", "./cspace_videos/Isaac_Jetbot_over_confident_0330_3D_rotation.mp4","./cspace_videos/Isaac_Jetbot_over_confident_0336_3D_rotation.mp4"], alt = ["C-space visualization - scenario 0300", "C-space visualization - scenario 0301"], dark_background=[true]) }}
134107

135-
## MBot Experiments (Hardware)
136108

137-
We also validated our method on an MBot, a differential-drive vehicle shown below.
109+
**B) MBot Experiments (Hardware)**<br>
110+
&emsp;We also validated our method on an MBot, a differential-drive vehicle shown below.
138111
Despite a relatively-small calibration dataset corresponding to `$\approx$`2 min of driving data `$(\lvert D_{cal}\rvert = 237)$`, our method provably satisfied the user-specified safety specifications, thanks to its *non-asymptotic guarantees*.
139112
**CLAPS** uses `$D_{cal}$` to derive data-driven provable (probabilistic) bounds on the uncertainty arising from both model mismatch, and inherent stochasticity.
140113

141114
{{ figure(alt=["MBot data collection clips"] src=["./mbot_videos/mbot_clip1.mp4", "./mbot_videos/mbot_clip2.mp4", "./mbot_videos/mbot_clip3.mp4"] subcaption=["Data collection videos"]) }}
142115

143-
The system configuration and velocity were estimated using a motion capture system. Uncertainty in the resulting configuration arises due to inaccuracies in inertial property estimation, actuation delays, center-of-mass deviation from the body-fixed origin, ground-surface imperfections, friction, network jitter, etc.
116+
The system configuration and velocity were estimated using a motion capture system. Uncertainty in the resulting configuration arose due to inaccuracies in inertial property estimation, actuation delays, center-of-mass deviation from the body-fixed origin, ground-surface imperfections, friction, network jitter, etc.
144117
The collection procedure of system transitions that make up `$D_{cal}$` and the validation set is shown below.
145118
<figure class="single-video-figure">
146119
<div class="single-video-wrapper">

sass/_figures.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ figure {
1212
img,
1313
video {
1414
margin-bottom: 0.5rem;
15+
margin-left: auto;
16+
margin-right: auto;
17+
display: block;
1518
}
1619

1720
>div {

sass/main.scss

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,48 @@ $color-selection-dark: false !default;
105105
flex: none;
106106
width: 100%;
107107
}
108-
}
108+
}
109+
110+
/* Problem statement two-column cards */
111+
.problem-columns {
112+
display: grid;
113+
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
114+
gap: 1.25rem;
115+
align-items: stretch;
116+
margin: 1.5rem 0 2rem;
117+
}
118+
119+
.problem-card {
120+
background: var(--color-light);
121+
border: 1px solid var(--color-border);
122+
border-radius: 0.5rem;
123+
padding: 1.1rem 1.25rem;
124+
display: flex;
125+
flex-direction: column;
126+
height: 100%;
127+
hyphens: none;
128+
}
129+
130+
.problem-card h3 {
131+
margin: 0 0 0.5rem;
132+
}
133+
134+
.problem-card p,
135+
.problem-card ul {
136+
margin: 0 0 0.65rem;
137+
}
138+
139+
.problem-card p,
140+
.problem-card li {
141+
hyphens: none;
142+
}
143+
144+
.problem-card ul {
145+
padding-left: 1.2rem;
146+
}
147+
148+
/* Disable hyphenation for main article body */
149+
.content p,
150+
.content li {
151+
hyphens: none;
152+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{% set parts = body | trim | split(pat="---") %}
2+
<div class="problem-columns">
3+
{% for part in parts %}
4+
{% if part | trim != "" %}
5+
<div class="problem-card">
6+
{{ part | trim | markdown | safe }}
7+
</div>
8+
{% endif %}
9+
{% endfor %}
10+
</div>

0 commit comments

Comments
 (0)