Skip to content

Commit f8180cd

Browse files
docs: add presentation recording preview
1 parent b6c3c67 commit f8180cd

5 files changed

Lines changed: 95 additions & 5 deletions

File tree

docs/index.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@ hide:
1010
# CRISP - **C**ompliant **R**OS2 Controllers for Learn**i**ng-Ba**s**ed Manipulation **P**olicies
1111

1212
*Authors: [Daniel San Jose Pro](https://danielsanjosepro.github.io)[^1], [Oliver Hausdörfer](https://oliver.hausdoerfer.de/)[^1], [Ralf Römer](https://ralfroemer99.github.io)[^1], Maximilian Dösch[^1], [Martin Schuck](https://amacati.github.io/) [^1] and [Angela P. Schoellig](https://www.ce.cit.tum.de/lsy/prof-angela-schoellig/) [^1]*.
13+
14+
<div class="presentation-info">
15+
<div class="presentation-info__text">
16+
<p>View the <a href="slides/index.html">CRISP presentation slides</a>: <em>Compliant ROS2 Controllers for Learning-Based Manipulation Policies</em> (IEEE RA-P 2026).</p>
17+
<p>Watch the <a href="https://youtu.be/WQd2eTBQQ40?si=GnNO7UqwXHmSJ0eu">presentation recording from the Robot Learning Munich Paper Club</a>.</p>
18+
</div>
19+
<div class="presentation-info__preview">
20+
<iframe class="presentation-info__iframe" src="https://www.youtube-nocookie.com/embed/WQd2eTBQQ40?autoplay=1&mute=1&controls=0&loop=1&playlist=WQd2eTBQQ40&modestbranding=1&playsinline=1&rel=0&start=60" data-video-id="WQd2eTBQQ40" data-start-times="60,240,420,660,900,1140,1380" title="CRISP presentation recording preview" allow="autoplay; encrypted-media; picture-in-picture" allowfullscreen></iframe>
21+
<a class="presentation-info__preview-link" href="https://youtu.be/WQd2eTBQQ40?si=GnNO7UqwXHmSJ0eu" aria-label="Watch the CRISP presentation recording on YouTube"></a>
22+
</div>
23+
</div>
24+
1325
[^1]: The authors are with Technical University of Munich, Germany; TUM School of Computation, Information and Technology, Department of Computer Engineering, Learning Systems and Robotics Lab; Munich Institute of Robotics and Machine Intelligence; and the Robotics Institute Germany.
1426

1527
You want to deploy your learning-based policy to your manipulator, or collect teleoperation data? `CRISP` provides the tools for that.
@@ -22,10 +34,6 @@ _If you use this work, please cite it using the [bibtex](#citing) below._
2234

2335
Check the [controllers (CRISP controllers) :simple-github:](https://github.com/utiasDSL/crisp_controllers), the simple [python interface (crisp_py) :simple-github:](https://github.com/utiasDSL/crisp_py), and a [Gymnasium wrapper (crisp_gym) :simple-github:](https://github.com/utiasDSL/crisp_gym) for real-world experiments.
2436

25-
26-
!!! info "Presentation slides"
27-
View the [CRISP presentation slides](slides/index.html)*Compliant ROS2 Controllers for Learning-Based Manipulation Policies* (IEEE RA-P 2026). Best on a laptop; on a phone, turn it sideways.
28-
2937
!!! info "Aloha gripper for Manipulators"
3038
Check out [aloha4franka](https://tum-lsy.github.io/aloha4franka/) for the gripper used in the videos.
3139

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
document.addEventListener('DOMContentLoaded', () => {
2+
const previews = document.querySelectorAll('.presentation-info__iframe[data-video-id][data-start-times]');
3+
4+
previews.forEach((preview) => {
5+
const videoId = preview.dataset.videoId;
6+
const startTimes = preview.dataset.startTimes
7+
.split(',')
8+
.map((time) => Number.parseInt(time.trim(), 10))
9+
.filter(Number.isFinite);
10+
11+
if (!videoId || startTimes.length === 0) {
12+
return;
13+
}
14+
15+
const start = startTimes[Math.floor(Math.random() * startTimes.length)];
16+
const params = new URLSearchParams({
17+
autoplay: '1',
18+
mute: '1',
19+
controls: '0',
20+
loop: '1',
21+
playlist: videoId,
22+
modestbranding: '1',
23+
playsinline: '1',
24+
rel: '0',
25+
start: String(start),
26+
});
27+
28+
preview.src = `https://www.youtube-nocookie.com/embed/${videoId}?${params.toString()}`;
29+
});
30+
});

docs/slides/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,7 @@
371371
background: var(--paper-hi);
372372
box-shadow: 4px 4px 0 rgba(32,170,150,.16);
373373
}
374+
.badge img { display:block; height:20px; width:auto; }
374375
.card {
375376
background: rgba(251,249,241,.72);
376377
border: 1.5px solid #000;
@@ -1420,7 +1421,7 @@
14201421
<h1 class="reveal d1" data-editable="true">Compliant ROS2 Controllers for Learning-Based Manipulation Policies</h1>
14211422
<p class="reveal d2" style="margin:18px 0 0; font-family:var(--font-mono); font-size:40px; letter-spacing:.02em; color:var(--muted);" data-editable="true">Daniel San José Pro</p>
14221423
<p class="reveal d2" style="margin:10px 0 0; font-family:var(--font-mono); font-size:13px; line-height:1.45; letter-spacing:.01em; color:var(--muted); max-width:900px;" data-editable="true">with Oliver, Ivan Domrachev, Nabil Miri, niklasschlueter, David Alexander, Vidullan, Veit Gemmer, Maximilian Dösch, Johannes Sautier, Ralf Römer, Linus Schwarz, Lev Kozlov, Luka Hofer, AlexD &amp; Bence Magyar</p>
1423-
<div class="badge-row title-badges reveal d3"><span class="badge">★222</span><span class="badge">IEEE RAP 2026</span></div>
1424+
<div class="badge-row title-badges reveal d3"><span class="badge"><img src="https://img.shields.io/github/stars/utiasDSL/crisp_controllers?style=social" alt="GitHub stars for utiasDSL/crisp_controllers"></span><span class="badge">IEEE RAP 2026</span></div>
14241425
<div class="qr-card reveal d3" aria-label="Project QR code">
14251426
<img src="assets/presentation/crisp-qr.svg" alt="QR code linking to the CRISP Controllers project page">
14261427
<span class="qr-caption">learnsyslab.github.io/crisp_controllers</span>

docs/stylesheets/extra.css

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,56 @@
5959
color: #008000; /* green */
6060
}
6161

62+
.presentation-info {
63+
display: flex;
64+
gap: 1rem;
65+
align-items: center;
66+
margin: 1.25rem 0;
67+
padding: 1rem;
68+
border: 1px solid var(--md-primary-fg-color);
69+
border-radius: 12px;
70+
background: color-mix(in srgb, var(--md-primary-fg-color) 10%, transparent);
71+
}
72+
73+
.presentation-info__text {
74+
flex: 1 1 auto;
75+
}
76+
77+
.presentation-info__preview {
78+
position: relative;
79+
flex: 0 0 220px;
80+
overflow: hidden;
81+
border-radius: 8px;
82+
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
83+
background: #000;
84+
}
85+
86+
.presentation-info__preview iframe {
87+
width: 100%;
88+
aspect-ratio: 16 / 9;
89+
display: block;
90+
border: 0;
91+
pointer-events: none;
92+
}
93+
94+
.presentation-info__preview-link {
95+
position: absolute;
96+
inset: 0;
97+
display: block;
98+
}
99+
100+
@media (max-width: 600px) {
101+
.presentation-info {
102+
align-items: flex-start;
103+
flex-direction: column;
104+
}
105+
106+
.presentation-info__preview {
107+
flex-basis: auto;
108+
max-width: 220px;
109+
}
110+
}
111+
62112
/* Carousel Styles */
63113
.carousel-container {
64114
position: relative;

zensical.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ extra_css = [
3838
]
3939
extra_javascript = [
4040
"javascripts/carousel.js",
41+
"javascripts/presentation-preview.js",
4142
# "javascripts/katex.js",
4243
# "https://unpkg.com/katex@0/dist/katex.min.js",
4344
# "https://unpkg.com/katex@0/dist/contrib/auto-render.min.js",

0 commit comments

Comments
 (0)