September 29, 2026
Countersteer, caught on two cameras
A handlebar camera and a frame camera recorded together on the road. Subtract one from the other and what remains is the rider's steering. At turn-in the bars go the wrong way first, then into the turn.
Mean handlebar angle during roll-in at 10–20 mph, with the bars turned away from the turn. 10 of 12 turn-ins, 95% interval −1.1° to −0.4°.
Also measured this session: the phone's motion sensors failed after 110 seconds, the frame camera stood in for them, and the drills were recognized from their shape alone.
What recorded what
The phone lost 99 minutes. The cameras didn't.
Sensor Logger kept GPS running but stopped every motion sensor two minutes in, and resumed only when the app was reopened to stop it. It is the third time; every failure came in the first two minutes. Two cameras carry their own motion data: the Insta360 X5 on the frame (1,000 samples a second) and the DJI Action 6, on the handlebars for the road legs and on a tripod in the lot.
Cameras as instruments
Can a camera on a selfie stick be a frame sensor?
For rotation, yes. A rigid body rotates the same everywhere on it, so the gyro on a stick sees exactly the bike's yaw, roll and pitch. Heading, lean and turn rate all come out clean.
For acceleration, only partly. The stick puts the camera a meter from the pitch center, so fork dive under hard braking adds about 0.4 g of false spike. The stick also shakes at about 42 Hz, far above anything the rider does, and a filter removes it.
A better frame sensor for the app would be a phone or small sensor fixed near the tank. The camera proves the idea.
- 3.4–9.1° X5 heading error vs GPS (phone on the bars: 14.8°)
- r 0.92 X5 lean vs lean the physics requires
- 1.02 X5 forward-axis gain vs GPS speed change (1.00 is perfect)
- r 0.993 Action 6 vs phone turn rate, same handlebar mount
- 5.6 s to read all five X5 files' motion data over the network, without touching video
- 13.3° bars into a slow 5.9 m U-turn, measured. Geometry predicts ~15°.
The headline result, in full
Steering, by speed
Each chart lines up every turn-in on the moment the lean passes 3° and flips left turns so that "toward the turn" is always up. The pink band is what countersteering should look like: bars away first, then into the turn. The solid line is the measured average with its 95% band; the dashed line is the same average taken at random moments, which should stay flat.
The countersteer gets smaller as speed rises, as physics predicts: a faster bike needs less input to roll. Only 4 turn-ins above 20 mph were recorded, too few to read.
Drills as shapes
Nine drills, redrawn from motion alone
GPS can't draw a drill: its position error is as big as the drill. The paths below come from the frame camera's heading and the GPS speed, integrated. Color is speed. Under each is the same run written as tokens (L181r6 is a 181° left turn at 6 m radius, S5m a 5 m straight, P2s a 2 s stop). That string doesn't change when the drill moves to another corner of the lot, so it's what the recognizer reads.
Blind recognition
23 of 27 real attempts named correctly
The recognizer ran over the whole hour as one stream, without the marks, and was then scored against them. Four more runs held no drill at all: an aborted braking rep and three runs where Emergency Braking was tapped instead of Loosening Up. The shape check caught those.
| Marked run | Length | On-pattern | Reps | Recognizer says | Result |
|---|---|---|---|---|---|
| Slow ride #1 | 53 s | 86% | 1 | Slow ride | match |
| Slow ride #2 | 36 s | 52% | 1 | U turn from stop | miss |
| Slow ride #3 | 38 s | 66% | 1 | Slow ride | match |
| Slow ride #4 | 29 s | 53% | 1 | Slow ride | match |
| Slow ride #5 | 34 s | 59% | 1 | Slow ride | match |
| Stop and go #1 | 63 s | 100% | 6 | Stop and go | match |
| Stop and go #2 | 64 s | 88% | 10 | Stop and go | match |
| Offset weave #2 | 124 s | 84% | 17 | Offset weave | match |
| Weave #1 | 129 s | 54% | 23 | Weave | match |
| Figure eight #4 | 70 s | 0% | – | — | miss |
| Figure eight #6 | 94 s | 64% | 5 | Figure eight | match |
| Figure eight #7 | 206 s | 78% | 21 | Figure eight | match |
| Fixed circle #2 | 57 s | 63% | 3.1 | Fixed circle | match |
| Fixed circle #3 | 45 s | 63% | 3.3 | Fixed circle | match |
| Fixed circle #4 | 57 s | 68% | 4.9 | Fixed circle | match |
| Dual u turn #1 | 37 s | 98% | 6 | Dual u turn | match |
| Dual u turn #2 | 74 s | 55% | 12 | Dual u turn | match |
| Dual u turn #3 | 131 s | 63% | 11 | Dual u turn | match |
| Emergency braking #1 | 27 s | 40% | 1 | Emergency braking | match |
| Emergency braking #2 | 29 s | 66% | 2 | Emergency braking | match |
| Emergency braking #3 | 31 s | 76% | 2 | Emergency braking | match |
| Emergency braking #4 | 28 s | 14% | 1 | Fixed circle | no drill ridden |
| Emergency braking #5 | 13 s | 100% | 1 | Emergency braking | match |
| Emergency braking #6 | 28 s | 49% | 2 | Emergency braking | match |
| U turn from stop #1 | 33 s | 32% | 1 | Dual u turn | miss |
| U turn from stop #2 | 147 s | 52% | 7 | U turn from stop | match |
| Emergency braking #7 | 130 s | 0% | – | — | no drill ridden |
| Emergency braking #8 | 103 s | 0% | – | — | no drill ridden |
| Emergency braking #9 | 50 s | 0% | – | Fixed circle | no drill ridden |
The whole hour
Marks above, shapes below
Ten-minute strips. Gray is speed, blue is turn rate. The top band is what was marked in the app; the bottom band is what the shape recognizer found by itself, including practice nobody marked.
Coaching numbers
Right turns lean further
Same radius, same speed, and yet the right side leans 2–6° more in every turning drill. The physics asks for the same lean both ways, so this is the rider, and it's the kind of thing an app can point out: ride more of the harder side.
Emergency braking
The brakes come on hard and fast: 80% of peak within 0.2–0.3 s every time. The last few mph are then shed gently, so the average over the whole stop is only about half the peak.
On the road, eleven ordinary traffic stops peaked at 0.14–0.34 g. The lot stops reached 0.73–0.82 g. The difference between an everyday stop and an emergency one is exactly what the drill trains, and it shows up in one number.
Street riding
The bike settles as speed rises
| Speed | Steering corrections, 1.5–4 Hz | Wobble band, 5–10 Hz |
|---|---|---|
| 2–6 mph | 9.8 °/s | 1.4 °/s |
| 10–15 mph | 1.9 °/s | 2.0 °/s |
| 20–25 mph | 1.1 °/s | 1.7 °/s |
| 25–30 mph | 1.0 °/s | 1.6 °/s |
Handlebar corrections fall tenfold from walking pace to 25 mph, as the bike becomes self-stable. Nothing grows in the wobble band. Slow riding is where the work is, which is why the drills are slow.
From the phone on the ride home: 46.5 mph top speed, six minutes above 20 mph.
Next
What would sharpen this
- A road ride with 20+ turn-ins above 20 mph, with the Action 6 on the bars and the X5 on the frame, to fill in the highway row of the steering chart.
- A glance at Sensor Logger two minutes into every session, and a restart if its plots are frozen.
- Drill templates drawn from the real shapes, so size can be scored against the size each rider picks.
- For the app: a second, frame-fixed sensor makes countersteer and lean coachable from phones alone.
Working figures
From the analysis notebook
More to read
Story
Five hard stopsField note
The Miracle Happened!
