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.

−0.73°

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.

Drag to look around · tap to fit

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.

Every drill run (bottom lane, colored by drill) fell inside the phone's gap. Times are Central. The frame camera's clock ran 4.9 s behind the phone (5.7 s after a power cycle); both were aligned from motion, not from file times.

Drag to look around · tap to fit

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°.
Each dot is a moment of riding. Across: the lean a steady turn needs, from speed and turn rate. Up: the lean the frame camera measured. The diagonal is perfect agreement.

Drag to look around · tap to fit

Ninety seconds of the ride home. The Action 6 and the phone share the handlebar mount; their turn rates overlay almost exactly. The Action 6 can stand in for the phone.

Drag to look around · tap to fit

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.

Drag to look around · tap to fit

Drag to look around · tap to fit

Drag to look around · tap to fit

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.

Speed colors: blue at walking pace, yellow around 12 mph, orange at 25 mph

Drag to look around · tap to fit

Drag to look around · tap to fit

Drag to look around · tap to fit

Drag to look around · tap to fit

Drag to look around · tap to fit

Drag to look around · tap to fit

Drag to look around · tap to fit

Drag to look around · tap to fit

Drag to look around · tap to fit

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 runLengthOn-patternRepsRecognizer saysResult
Slow ride #153 s86%1Slow ridematch
Slow ride #236 s52%1U turn from stopmiss
Slow ride #338 s66%1Slow ridematch
Slow ride #429 s53%1Slow ridematch
Slow ride #534 s59%1Slow ridematch
Stop and go #163 s100%6Stop and gomatch
Stop and go #264 s88%10Stop and gomatch
Offset weave #2124 s84%17Offset weavematch
Weave #1129 s54%23Weavematch
Figure eight #470 s0%–—miss
Figure eight #694 s64%5Figure eightmatch
Figure eight #7206 s78%21Figure eightmatch
Fixed circle #257 s63%3.1Fixed circlematch
Fixed circle #345 s63%3.3Fixed circlematch
Fixed circle #457 s68%4.9Fixed circlematch
Dual u turn #137 s98%6Dual u turnmatch
Dual u turn #274 s55%12Dual u turnmatch
Dual u turn #3131 s63%11Dual u turnmatch
Emergency braking #127 s40%1Emergency brakingmatch
Emergency braking #229 s66%2Emergency brakingmatch
Emergency braking #331 s76%2Emergency brakingmatch
Emergency braking #428 s14%1Fixed circleno drill ridden
Emergency braking #513 s100%1Emergency brakingmatch
Emergency braking #628 s49%2Emergency brakingmatch
U turn from stop #133 s32%1Dual u turnmiss
U turn from stop #2147 s52%7U turn from stopmatch
Emergency braking #7130 s0%–—no drill ridden
Emergency braking #8103 s0%–—no drill ridden
Emergency braking #950 s0%–Fixed circleno 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.

Drag to look around · tap to fit

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.

Median peak lean per turn, left (blue) and right (orange). The labels give each side's median radius and the number of turns.

Drag to look around · tap to fit

Emergency braking

Stopping distance from brake onset, with entry speed. Peak deceleration is averaged over 0.5 s because the stick-mounted camera exaggerates the instant peak.

Drag to look around · tap to fit

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

SpeedSteering corrections, 1.5–4 HzWobble band, 5–10 Hz
2–6 mph9.8 °/s1.4 °/s
10–15 mph1.9 °/s2.0 °/s
20–25 mph1.1 °/s1.7 °/s
25–30 mph1.0 °/s1.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

Every marked run, drawn from the frame camera over the raw GPS fixes (gray).

Drag to look around · tap to fit

The steering result as produced by the analysis script.

Drag to look around · tap to fit

The earlier, frame-only test: roll leads yaw at turn-in in 46 of 53 drill turns.

Drag to look around · tap to fit

Selfie-stick shake sits near 42 Hz; riding lives below 5 Hz.

Drag to look around · tap to fit

Handlebar rate spectrum on the ride home.

Drag to look around · tap to fit