mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-11-12 17:53:45 +08:00
b9d8f95ae9
Routes 85/89 (Light Speed 2): under 4 m/s the car made 47-75% of the planned turn and the driver pushed against it at turn-in, mostly while the turn plan floor set the command. Replaying those turns, the car already turned in about when the plan's corner reached the bumper, so turning in later means holding past the corner. Spec: docs/superpowers/specs/2026-11-06-crawl-turns-design.md. - turn-in hold (turn_shaping.py): during a signalled turn under 6 m/s, steering toward the turn is held to the road's curvature from before the corner until 2 m past the plan's corner (5 deg of heading, from the front bumper), counted by speed. Never touches steering away from the turn, never holds a plan with no corner; 8 s of creeping and 2.5 s past the corner at most; waiting at a stop doesn't count. In replay it covers 55 of 71 pushback frames and delays turn-in a median 2 m. - harder turn: the floor is the full plan at <=4 m/s (was 0.75x), read 0.3 s further ahead at a crawl, capped at 0.2 1/m and 3 m/s^2. - route: navd's signal route gives the turn still to go; a plan turning more than 10 deg short is scaled up to 1.3x. With openpilot longitudinal, plannerd caps the target to a corner speed by turn angle (4.5 m/s for 90 deg) within 100 m, only below the lane-turn speed so highway lane changes never brake (turn_speed.py, LongitudinalPlanSource.turnSpeed). - navd finds signalled turns for any model; map inputs to the model stay gated on modelSupportsNavigation, which the context now carries. - modelDataV2SP logs turnInHold, turnBendDistance, turnLead, turnRouteRemainingDeg and turnRouteFactor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Docs development
The docs/ tree is the source for docs.comma.ai.
The site is updated on pushes to master by this workflow.
1. Build the site
op docs --build
2. Run the site locally (rebuilds on change)
op docs