Skip to content
Merged
28 changes: 5 additions & 23 deletions _sass/custom.scss
Original file line number Diff line number Diff line change
Expand Up @@ -1985,7 +1985,7 @@ body.imuchallenge-home .content a.imu-workshop-text-link:hover {

.imu-workshop-partners {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 1rem;
}

Expand Down Expand Up @@ -2018,28 +2018,6 @@ body.imuchallenge-home .content a.imu-workshop-text-link:hover {
object-fit: contain;
}

.imu-workshop-amazon {
gap: 0.8rem;
}

.imu-workshop-amazon span {
color: var(--imu-home-ink);
font-size: 1.45rem;
font-weight: 800;
}

.imu-workshop-amazon i {
width: 1px;
height: 2rem;
background: var(--imu-home-line);
}

.imu-workshop-amazon strong {
color: var(--imu-home-accent) !important;
font-size: 1.25rem;
font-weight: 800;
}

.imu-workshop-inline-links {
display: flex;
flex-wrap: wrap;
Expand Down Expand Up @@ -2201,6 +2179,10 @@ body.imuchallenge-home .content .imu-workshop-citation-block code {
margin-top: 1.1rem;
}

.imu-workshop-partners {
grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.imuchallenge-home .content a.imu-workshop-action {
min-height: 42px;
padding: 0.6rem 0.7rem;
Expand Down
Binary file added img/logos/amazon-far.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/logos/sii-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/social/wechat_communities_2026.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion imuchallenge/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ Challenge organization is coordinated by **CMU AirLab**, with benchmark, dataset

## Contact

For challenge questions, post in the [Kaggle discussion forum](https://www.kaggle.com/competitions/tartan-imu-challenge-iros2026/discussion){:target="_blank" rel="noopener"} so answers remain visible to every team. Use the [team registration form](https://forms.gle/7rUg7ENctuBU9kTN8){:target="_blank" rel="noopener"} for registration details.
For challenge questions, post in the [Kaggle discussion forum](https://www.kaggle.com/competitions/tartan-imu-challenge-iros2026/discussion){:target="_blank" rel="noopener"} so answers remain visible to every team. To register, join the competition on Kaggle and create your team there — see the [setup guide](/imuchallenge/setup/#quick-start) for the full walkthrough.
2 changes: 1 addition & 1 deletion imuchallenge/data.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Window indices and per-window targets are in `index/`: `train_windows.csv` / `va

At competition scale, the dataset totals **136,289 one-second windows** across all platforms — **81,931 train / 23,714 val / 30,644 held-out test** — for about **37.9 hours** of recorded motion in total, ranging from about 5.2 hours (drone) to 13.4 hours (human) of motion per platform across all three splits.

**Metric — macro-averaged Absolute Trajectory Error (ATE), lower is better:** you submit one body-frame velocity per test window. The organizers rotate each prediction into the world frame using the ground-truth orientation (used only for scoring, never as model input), accumulate the per-window displacements into a path, align that path to ground truth with an SE(3) Umeyama alignment (rotation + translation, no scale), and compute ATE as the RMS position error between the aligned estimate and ground truth. Per-platform ATE is the mean over that platform's test trajectories; the final score is the equal-weight mean of the four per-platform ATEs, so no platform dominates.
**Metric — TartanIMU Score `0.6 × (AVE / 0.7356384388) + 0.4 × (ATE20 / 3.1160277267)`, lower is better:** you submit one body-frame velocity per test window. AVE (60% of the score) is the mean per-window Euclidean error `‖v_pred − v_gt‖` between your predicted and ground-truth body-frame velocity, in m/s — no alignment or trajectory accumulation involved. ATE20 (40% of the score) is a trajectory-level metric: the organizers rotate each prediction into the world frame using the ground-truth orientation (used only for scoring, never as model input), accumulate the per-window displacements into a path, cut the ground-truth path into ~20 m segments of travelled distance, align each segment independently to ground truth with an SE(3) Umeyama alignment (rotation + translation, no scale), and take the RMS position error within each segment; a trajectory's ATE20 is the mean over its segments. The score is macro-averaged over the four platforms, each contributing 25%.

Splits are deduplicated at the trajectory level (SHA-256 of raw IMU content); train / val / public-test / private-test share no recording. The public leaderboard is scored on the Public test trajectories; final standings use the held-out Private trajectories. The Public/Private split is at the whole-trajectory level, never per window.

Expand Down
18 changes: 9 additions & 9 deletions imuchallenge/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,9 +182,6 @@ permalink: /imuchallenge/
<a class="imu-workshop-action is-secondary" href="https://github.com/superxslam/TartanIMU" target="_blank" rel="noopener">
<i class="fab fa-github" aria-hidden="true"></i><span>TartanIMU Code</span>
</a>
<a class="imu-workshop-action is-secondary" href="https://forms.gle/7rUg7ENctuBU9kTN8" target="_blank" rel="noopener">
<i class="fas fa-user-plus" aria-hidden="true"></i><span>Register Team</span>
</a>
<a class="imu-workshop-action is-secondary" href="/imuchallenge/setup/">
<i class="fas fa-rocket" aria-hidden="true"></i><span>Setup Guide</span>
</a>
Expand All @@ -200,8 +197,8 @@ permalink: /imuchallenge/
<h2 id="imu-alert-title"><i class="fas fa-triangle-exclamation" aria-hidden="true"></i>Important reminder: eligibility for the final ranking</h2>
<p>This applies to every team, including those who have already submitted to Kaggle. The Kaggle leaderboard is provisional: official final standings are decided only after the organizers re-execute the top teams' submitted models. To be eligible for the final ranking you must, in addition to submitting predictions:</p>
<ol>
<li>Complete the <a href="https://forms.gle/7rUg7ENctuBU9kTN8" target="_blank" rel="noopener">Submission Form</a> for each submission you want considered, attaching the prediction CSV you uploaded.</li>
<li>Submit a technical report (PDF). <a href="https://drive.google.com/drive/folders/1EEnFNbogpRSbqGglppdNh0EQp0zxHzjZ" target="_blank" rel="noopener">Download it here</a> &mdash; the zip contains <code>main.tex</code> and <code>ieeeconf.cls</code>. On Overleaf: <em>New Project &rarr; Upload Project</em> &rarr; select the zip. Maximum 6 pages excluding references, 7 in total; the appendix does not count. The report is due <strong>23:59 US Eastern Time, 23 September 2026</strong> &mdash; three days after the leaderboard closes &mdash; and is submitted by attaching it at the end of the <a href="https://forms.gle/7rUg7ENctuBU9kTN8" target="_blank" rel="noopener">challenge Form</a>. All numbers in Tables III&ndash;V must come from the <a href="https://huggingface.co/spaces/Tartan-IMU/imu_odometry_challenge_scoring" target="_blank" rel="noopener">official scoring service</a>, not a local re-implementation.</li>
<li>Complete the <a href="https://docs.google.com/forms/d/e/1FAIpQLSc_3Pq2Bs4ytd0lfHHLsU_qoO5z0BP6Psnsqo7e5nOyBTlCjQ/viewform" target="_blank" rel="noopener">Submission Form</a> for each submission you want considered, attaching the prediction CSV you uploaded.</li>
<li>Submit a technical report (PDF). <a href="https://drive.google.com/drive/folders/1EEnFNbogpRSbqGglppdNh0EQp0zxHzjZ" target="_blank" rel="noopener">Download it here</a> &mdash; the zip contains <code>main.tex</code> and <code>ieeeconf.cls</code>. On Overleaf: <em>New Project &rarr; Upload Project</em> &rarr; select the zip. Maximum 6 pages excluding references, 7 in total; the appendix does not count. The report is due <strong>23:59 US Eastern Time, 23 September 2026</strong> &mdash; three days after the leaderboard closes &mdash; and is submitted by attaching it at the end of the <a href="https://docs.google.com/forms/d/e/1FAIpQLSc_3Pq2Bs4ytd0lfHHLsU_qoO5z0BP6Psnsqo7e5nOyBTlCjQ/viewform" target="_blank" rel="noopener">challenge Form</a>. All numbers in Tables III&ndash;V must come from the <a href="https://huggingface.co/spaces/Tartan-IMU/imu_odometry_challenge_scoring" target="_blank" rel="noopener">official scoring service</a>, not a local re-implementation.</li>
<li>Publish your single unified model's weights and inference code as a public Hugging Face model repository, within the same 7 days.</li>
</ol>
<p>Teams missing any of the three, or whose model cannot be re-executed, are removed from the final ranking regardless of leaderboard position. Full details on the <a href="https://www.kaggle.com/competitions/tartan-imu-challenge-iros2026/rules" target="_blank" rel="noopener">Rules and Evaluation tabs</a>.</p>
Expand Down Expand Up @@ -358,19 +355,22 @@ permalink: /imuchallenge/
<div class="imu-workshop-section-heading">
<p class="imu-workshop-eyebrow">Organizers and partners</p>
<h2>Built by teams working on robust robot perception.</h2>
<p>The challenge is organized by CMU AirLab and Amazon FAR in conjunction with the IROS 2026 workshop on interoceptive perception.</p>
<p>The challenge is organized by CMU AirLab and Amazon FAR in conjunction with the IROS 2026 workshop on interoceptive perception, with support from the Shanghai Innovation Institute.</p>
</div>

<div class="imu-workshop-partners">
<a href="https://theairlab.org/" target="_blank" rel="noopener" aria-label="CMU AirLab">
<img src="/img/logos/Horizontal@2x.png" alt="CMU AirLab" width="600" height="147" loading="lazy" decoding="async">
</a>
<div class="imu-workshop-amazon" aria-label="Amazon FAR">
<span>amazon</span><i aria-hidden="true"></i><strong>FAR</strong>
</div>
<a href="https://github.com/amazon-far" target="_blank" rel="noopener" aria-label="Amazon FAR">
<img src="/img/logos/amazon-far.png" alt="Amazon FAR" loading="lazy" decoding="async">
</a>
<a href="https://www.ri.cmu.edu/" target="_blank" rel="noopener" aria-label="Carnegie Mellon University Robotics Institute">
<img src="/img/riLogo2019.svg" alt="Carnegie Mellon University Robotics Institute" loading="lazy" decoding="async">
</a>
<a href="https://www.sii.edu.cn/" target="_blank" rel="noopener" aria-label="Shanghai Innovation Institute">
<img src="/img/logos/sii-logo.png" alt="Shanghai Innovation Institute" loading="lazy" decoding="async">
</a>
</div>

<div class="imu-workshop-inline-links">
Expand Down
8 changes: 6 additions & 2 deletions imuchallenge/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ permalink: /imuchallenge/setup/
<div class="imu-steps" markdown="1">

<div class="imu-step" markdown="1">
**Register your team.** [Fill out the registration form.](https://forms.gle/7rUg7ENctuBU9kTN8){:target="_blank" rel="noopener"} Then join the competition on Kaggle: [TartanIMU Challenge: Multi-Platform Inertial Odometry](https://www.kaggle.com/competitions/tartan-imu-challenge-iros2026){:target="_blank" rel="noopener"}.
**Register your team.** Join the competition on Kaggle and create your team there: [TartanIMU Challenge: Multi-Platform Inertial Odometry](https://www.kaggle.com/competitions/tartan-imu-challenge-iros2026){:target="_blank" rel="noopener"}. There's no separate signup — your Kaggle team *is* your registration.
</div>

<div class="imu-step" markdown="1">
Expand Down Expand Up @@ -225,6 +225,10 @@ finetune:
**Improve and [submit](https://www.kaggle.com/competitions/tartan-imu-challenge-iros2026/submissions){:target="_blank" rel="noopener"}.** Experiment with your own methods to push performance on the leaderboard.
</div>

<div class="imu-step" markdown="1">
**Log your submission and report.** The Kaggle leaderboard alone doesn't make you eligible for the final ranking or workshop presentation. Complete the [Submission Form](https://docs.google.com/forms/d/e/1FAIpQLSc_3Pq2Bs4ytd0lfHHLsU_qoO5z0BP6Psnsqo7e5nOyBTlCjQ/viewform){:target="_blank" rel="noopener"} for each submission you want considered, and again to attach your technical report before the deadline. See [Final ranking eligibility](#schedule-rules-and-leaderboard) for the full requirements.
</div>

</div>

## Schedule, Rules, and Leaderboard
Expand All @@ -241,7 +245,7 @@ Competition dates, team and submission limits, and any external-data policy can

The Kaggle leaderboard is **provisional**. Official final standings are decided only after the organizers re-execute the top teams' submitted models. To be eligible for the final ranking you must, in addition to submitting predictions:

1. Complete the [Submission Form](https://forms.gle/7rUg7ENctuBU9kTN8){:target="_blank" rel="noopener"} for each submission you want considered, attaching the prediction CSV you uploaded.
1. Complete the [Submission Form](https://docs.google.com/forms/d/e/1FAIpQLSc_3Pq2Bs4ytd0lfHHLsU_qoO5z0BP6Psnsqo7e5nOyBTlCjQ/viewform){:target="_blank" rel="noopener"} for each submission you want considered, attaching the prediction CSV you uploaded.
2. Submit a technical report (PDF) &mdash; see [Technical report](#technical-report) below. All numbers in Tables III&ndash;V must come from the [official scoring service](https://huggingface.co/spaces/Tartan-IMU/imu_odometry_challenge_scoring){:target="_blank" rel="noopener"}, not a local re-implementation.
3. Publish your single unified model's weights and inference code as a public Hugging Face model repository, within the same 7 days.

Expand Down
23 changes: 7 additions & 16 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,6 @@ hero_buttons:
font-size: 0.92rem;
line-height: 1.5;
}
#home-wechat-qr[hidden],
#home-wechat-expired[hidden] {
display: none;
}
#home-wechat-qr img {
display: block;
width: min(100%, 660px);
Expand Down Expand Up @@ -156,20 +152,20 @@ hero_buttons:
<i class="fas fa-times" aria-hidden="true"></i>
</button>
<h2 id="home-wechat-title">Join Our WeChat Communities</h2>
<p id="home-wechat-description">Scan to join the 2026 IMU Challenge or Proprioception community.</p>
<p id="home-wechat-description">Scan to join the Proprioception community.</p>
<div id="home-wechat-qr">
<img src="/img/social/wechat_communities_2026.png" alt="WeChat QR codes for the 2026 IMU Challenge and Proprioception communities" width="1320" height="1399">
<img src="/img/social/wechat_communities_2026.png" alt="WeChat QR code for the Proprioception community" width="1080" height="1659">
<div class="home-wechat-validity">
<i class="fas fa-calendar-alt" aria-hidden="true"></i>
<span>These invitation QR codes are valid until August 12, 2026.</span>
<span>This invitation QR code is valid until <strong>September 12, 2026</strong>.</span>
</div>
<a class="home-wechat-full" href="/img/social/wechat_communities_2026.png" target="_blank" rel="noopener">
<i class="fas fa-expand" aria-hidden="true"></i><span>Open full-size QR codes</span>
<i class="fas fa-expand" aria-hidden="true"></i><span>Open full-size QR code</span>
</a>
</div>
<div class="home-wechat-expired" id="home-wechat-expired" hidden>
<div class="home-wechat-expired">
<i class="fas fa-clock" aria-hidden="true"></i>
<p>These WeChat invitations expired on August 12, 2026. Please request updated codes through <a href="https://discord.com/invite/Huf2GJx32y" target="_blank" rel="noopener">Discord</a>.</p>
<p>If this code has expired, message us in <a href="https://discord.com/invite/Huf2GJx32y" target="_blank" rel="noopener">Discord</a> and we'll send you a current one.</p>
</div>
</dialog>

Expand All @@ -178,20 +174,15 @@ hero_buttons:
const trigger = document.querySelector('a.hero-social-btn[href="/img/social/wechat_communities_2026.png"]');
const dialog = document.getElementById("home-wechat-dialog");
const closeButton = document.getElementById("home-wechat-close");
const qrCodes = document.getElementById("home-wechat-qr");
const expiredMessage = document.getElementById("home-wechat-expired");

if (!trigger || !dialog || !closeButton || !qrCodes || !expiredMessage || typeof dialog.showModal !== "function") return;
if (!trigger || !dialog || !closeButton || typeof dialog.showModal !== "function") return;

trigger.removeAttribute("target");
trigger.removeAttribute("rel");
trigger.setAttribute("aria-haspopup", "dialog");
trigger.setAttribute("aria-controls", "home-wechat-dialog");
trigger.addEventListener("click", function(event) {
event.preventDefault();
const inviteExpired = Date.now() >= Date.parse("2026-08-13T00:00:00+08:00");
qrCodes.hidden = inviteExpired;
expiredMessage.hidden = !inviteExpired;
dialog.showModal();
});
closeButton.addEventListener("click", function() {
Expand Down
10 changes: 5 additions & 5 deletions interoception.md
Original file line number Diff line number Diff line change
Expand Up @@ -728,10 +728,6 @@ hero_image: /img/IROS_2026_tab/pittsburgh_from_pdf.jpg
<span class="icon" aria-hidden="true"><i class="fas fa-trophy"></i></span>
<span>Explore Challenge</span>
</a>
<a class="challenge-cta is-secondary" href="https://forms.gle/7rUg7ENctuBU9kTN8" target="_blank" rel="noopener">
<span class="icon" aria-hidden="true"><i class="fas fa-user-plus"></i></span>
<span>Register Team</span>
</a>
<a class="challenge-cta is-secondary" href="https://www.kaggle.com/competitions/tartan-imu-challenge-iros2026/submissions" target="_blank" rel="noopener">
<span class="icon" aria-hidden="true"><i class="fas fa-upload"></i></span>
<span>Submit on Kaggle</span>
Expand Down Expand Up @@ -782,7 +778,11 @@ hero_image: /img/IROS_2026_tab/pittsburgh_from_pdf.jpg
</div>
<div class="date-row">
<time datetime="2026-09-20T23:55:00Z">September 20, 2026, 23:55 UTC</time>
<p>Final challenge submission, technical report, and model weights deadline.</p>
<p>Final challenge submission and model weights deadline.</p>
</div>
<div class="date-row">
<time datetime="2026-09-23T23:59:00-04:00">September 23, 2026, 23:59 US Eastern (EDT)</time>
<p>Technical report deadline.</p>
</div>
<div class="date-row">
<time datetime="2026-09-24">September 24, 2026</time>
Expand Down