Short, scoped engagements in robot perception, autonomy, and data.

Robot navigation log triage now lives at theohermann.ch; the scopes below are the rest of the practice.

The five scopes below are the shapes this work keeps taking. Anything else, ask.

ROS 2 fleet log triage

Own page: theohermann.ch

Method public: github.com/thrmnn/ros2-localization-triage

A robot misbehaves at a customer site and someone has to comb the bag files and logs to find out why. I do that investigation: reconstruct the timeline, isolate the failure, and write up what happened with the evidence attached. Then I calibrate detectors to your fleet's failure classes — sensor dropout, transform jumps, covariance spikes, pose divergence — run against your recorded bags and logs. Calibration is not optional: a covariance threshold set on a simulated TurtleBot3 sits inside a real Tiago's healthy yaw noise and fired five times on a recording with nothing wrong.

What you get

  • Incident report: timeline, root cause, supporting evidence from your bags and logs
  • Detectors for your fleet's failure classes (sensor dropout, transform jumps, covariance spikes, pose divergence), run against your recorded bags and logs
  • Thresholds calibrated to your fleet, with measured false-alarm rates
  • Analysis scripts you can rerun on new recordings
  • Analysis runs on your infrastructure or under NDA on mine; nothing is retained after handover.

Why me

The method is public in ros2-localization-triage: four localization-failure detectors run against 108 minutes of real recordings from five robot platforms — Cartographer backpack rigs, a Tiago, a MiR100 AGV, a PR2, a handheld 3D rig — all public benchmark data, not a live customer fleet. Every graded figure recomputes from a committed artifact: clone the repo and run python3 scripts/check_numbers.py. Against failure labels the Cartographer dataset's own authors wrote more than a decade before this tool existed, the gap detector found 16 of 16 labelled laser gaps and nothing else. The case log is self-graded against a rubric committed before the results existed, and wrong results are published as wrong.

Perception pipeline audit

2 weeks

A focused review of your existing detection / tracking / pose stack. I read the code, trace the latency budget end-to-end, identify the blockers most likely to break in production, and hand back a written report with prioritized fixes.

What you get

  • Architecture and data-flow walkthrough
  • Per-module latency / accuracy breakdown
  • Top-N prioritized findings with concrete fix recommendations
  • Optional: 1-week implementation pass on the highest-leverage finding

Why me

Roboat camera perception on Jetson Orin, on canal vessels in Amsterdam. The same detection / tracking / pose shape in the open: perception-pipeline — modular, MIT-licensed, v0.1 shipped June 2026.

LiDAR / point-cloud pipeline bring-up

3–4 weeks

You have raw LiDAR but no production pipeline. I take you from raw scans to a usable processed product: calibration, registration, segmentation, ground extraction, and the downstream representation you actually need (mesh, occupancy grid, semantic point cloud).

What you get

  • Sensor calibration + ground-truth alignment
  • Registration / SLAM pass
  • Semantic segmentation (ground, vegetation, structures)
  • Documented Python / ROS pipeline, reproducible from raw

Why me

MIT Senseable City Lab Rio — terrestrial LiDAR of Rio favelas fused with aerial multispectral and DTMs, feeding CFD airflow simulations. MSc thesis at MIT Senseable Amsterdam with AMS Institute: per-tree LAI from aerial LiDAR for the City of Amsterdam.

Robot-perception MVP

6–8 weeks

End-to-end detection + tracking + state-estimation prototype on real hardware. Targeted at teams who need to move from research code to a robot that runs reliably outside the lab. Scoped tightly: one platform, one task, hard latency budget.

What you get

  • Hardware integration + sensor calibration on your platform
  • Detection + tracking + (optional) ReID / pose primitives wired up
  • TensorRT export and latency budget signed off
  • Demo loop running on robot + handover documentation

Why me

EPFL VITA Lab — full autonomy stack on Segway Loomo (SLAM + planning + obstacle avoidance + person-following), released open-source. Roboat — camera perception and MLOps as its first intern, on a stack that until then ran on LiDAR.

AI-agent infrastructure

4–8 weeks

For teams shipping agentic products and hitting the wall every team hits — flaky tool calls, unobservable failures, no evals, no safe way to ship a prompt change. I build the harness around your agent so it behaves like a production system: typed tool layer, retrieval you can measure, traces you can actually read, and an eval suite that catches regressions before users do.

What you get

  • Typed, versioned tool layer (testable in isolation)
  • An example keyword-search tool that demonstrates the eval harness on a retrieval-style task
  • One structured trace line per tool call, small enough to grep
  • Regression eval suite wired into CI

Why me

Early open-source scaffold (agent-harness): typed tool layer and eval-suite structure, started June 2026. The same engineering discipline demonstrated in ros2-localization-triage — typed interfaces, tests, reproducible mechanical checks — is what an engagement in this scope would bring to your agent stack.

How engagements work

  • Discovery call (free, 20 min) — we scope the problem and I tell you honestly whether it's a fit.
  • Written proposal — fixed scope, fixed timeline, fixed price. You see exactly what you're buying before you commit.
  • Weekly written updates — what shipped, what's next, what's at risk. No status meetings unless you want them.
  • Handover artifact — running code, documentation, and a written report. Engagements end clean.

Start a conversation

Booking is the fastest path. If your project doesn't fit the slot list, email and I'll read it.