acquiring · raw returns
SNR 0.00
fps
doc
signal 12%
Perception · Control · Vehicle Dynamics

I build autonomous systems to understand their failure modes.

Tapan Mehta — M.Sc. Commercial Vehicle Technology, RPTU Kaiserslautern. I work where vehicle dynamicsevidenceTire & handling sim — Pacejka / friction ellipse in MSC Adams & Simulink. repo →, perceptionevidenceMotion prediction — LSTM/GRU vs Kalman/IMM on inD. repo →, control and software meet. The understanding isn't real to me until I can explain the failure mode to someone else.

I treat tools, processes and interactions the way an engineer treats system performance — minimize overhead, maximize signal.
Field notes

The kind of thing you only learn by doing it —

Open any of them. Note 01 is playable — break the filter yourself. Hover the dashed terms anywhere for their evidence.

01Why a Kalman filter quietly fails at a crosswalkplay+

A Kalman/EKF carries a single Gaussian belief — structurally unimodal. A pedestrian at a curb is genuinely bimodal: wait or cross. To cover both, the filter must center on the gap between them — a confident prediction of a spot no one occupies. Drag the slider:

Crosswalk · Kalman vs IMMambiguous
Pedestrian intentp(cross) = 0.50
truthKalmanIMM·waitIMM·cross
The handshake

It fails silently — NIS/innovation gates keep passing because the mean sits plausibly in the gap. You catch it the first time you overlay the multimodal ground truth and see a path no agent ever took.

02A cloud passing the window broke my 3D-printer watchdog+

My dual-camera detector scored frames with SSIM — luminance × contrast × structure. The luminance term reacts to global illumination. A cloud dropped ambient light across the bed, SSIM fell under threshold, and it paused a healthy print as a defect.

The handshake

A lower threshold just trades false alarms for misses. Fix it upstream: pin the illumination, normalize exposure, or run blob/ROI detection on the part itself.

03Why peak grip isn't at zero slip+

The Pacejka curve peaks at a few percent slip, then falls — max grip is at nonzero slip. Longitudinal and lateral force share the friction ellipse, which is why trail-braking keeps the contact patch near its peak through the arc.

The handshake

A controller targeting zero slip leaves grip on the table. ABS/TC hunt the peak and live just past it.

04Your ROS 2 nodes are dropping messages and not telling you+

DDS QoS must be compatible or pub/sub never connect — and nothing throws. BEST_EFFORT + shallow KEEP_LAST drops under load; a RELIABLE sub won't match a BEST_EFFORT pub at all.

The handshake

ros2 topic echo shows data because it negotiates its own QoS — not your node's. Trust ros2 topic info -v matched counts; set an explicit SensorDataQoS.

From the field — ROS 2 / DDS integration work.
Work / artifacts

Things I built — mostly to understand them.

Every card carries its receipt: open it for the repo.

Perception · ML

Motion prediction +

LSTM/GRU vs Kalman/IMM on the inD dataset.

Recurrent trajectory prediction benchmarked against Kalman/IMM baselines on inD. The project behind note 01.

PyTorch · inD · Kalman/IMM

View on GitHub →
CV · Embedded

3D-print anomaly watchdog +

Dual-camera defect detection on a Raspberry Pi 5.

Two OV5647 cameras, SSIM + blob/ROI, OctoPrint API, Telegram alerts. The project behind note 02.

RPi 5 · OpenCV · OctoPrint

View on GitHub →
Vehicle dynamics

Tire & handling sim +

Pacejka behaviour in MSC Adams & Simulink.

Pacejka tire curves, friction ellipse, combined slip. The physics behind note 03.

Adams Car · MATLAB/Simulink

View on GitHub →
Flutter · Local-first

Cockpit +

Local-first finance app. Privacy by architecture.

Argon2id, SQLCipher, Drift, Riverpod on a Bauhaus system. No server to trust.

Flutter · SQLCipher · Drift

View on GitHub →
PWA · Tooling

Daily Blueprint / DayFrame +

A life-OS PWA / Flutter app.

"Minimize overhead, maximize signal" applied to a day: structure without ceremony.

Flutter · PWA

View on GitHub →
Web · Canvas

This portfolio +

A page that argues its own thesis.

Playable failure modes, a provenance layer, a self-instrumenting HUD, a terminal résumé. Signal over noise, demonstrated.

Canvas · zero build

View on GitHub →
About / Now

Competence is demonstrated, not declared.

Undergrad in mechanical engineering, now an M.Sc. in Commercial Vehicle Technology at RPTU. Core ground: ADAS, sensor fusionevidenceMotion prediction + ROS 2 perception stacks. repo →, ROS 2evidenceDDS QoS debugging — field note 04., motion prediction, vehicle-dynamics simulation, MATLAB/Simulink, CAN, PyTorch, embedded and CV. Two-plus years C#/Unity; building in Flutter now.

I keep my claims honest — I cut the skills I haven't shipped. Hover anything dashed and it shows its receipt. I'd rather earn the expert's nod than the crowd's click.

Tapan Mehta — Kaiserslautern
subject · T. Mehtahover to resolve →
Open to a Pflichtpraktikum
  • in ADAS / AD / vehicle-dynamics sim / robotics / applied ML for automotive.
CurrentlyM.Sc. Commercial Vehicle Technology @ RPTU · 2 yrs Formula Student Driverless (KaRaT Racing e.V.).
Build log

The site is an engineering artifact too.

v0.4playable note 01
Embedded the Kalman-vs-IMM crosswalk demo inline — you break the filter yourself.
v0.3provenance layer
Every claim now carries a hover receipt: the project and repo behind it.
v0.2self-instrumenting HUD
Live FPS + document weight + a signal meter that rises as you engage.
v0.1terminal résumé
A real >_ mode — plaintext, command-driven. Minimize overhead, made literal.
[ esc ] close
tapan@portfolio:~$