SidewalkPilot-v2.2
SidewalkPilot-v2.2 is a PyTorch steering model for a small autonomous RC car. It predicts a steering servo angle from 0 to 180 degrees and uses the relabeled D0328/D0329 First Dataset work.
This checkpoint belongs to Series 2 raw-BGR. It uses the raw-BGR path, not the legacy v2.0 HSV/CLAHE preprocessing path.
Model Details
- Developed by: Ram Shreyas Naik Sabavat
- Model type: CNN steering regression model
- Library: PyTorch
- License: Apache 2.0
- Checkpoint:
SidewalkPilot-v2.2.pth
- Checkpoint created: 2026-05-09 05:41 PM America/Los_Angeles
- Input: Full OpenCV BGR camera frame
- Preprocessing:
BGR -> resize 200x66 -> normalize
- Output: Steering servo angle from
0 to 180
- Series:
2.x
- Output scale: approximately
5..175
Specific Improvements
- Used the relabeled D0328 and D0329 First Dataset images in the active correction set.
- Kept the raw-BGR Series 2 inference path instead of the legacy v2.0 CLAHE path.
- Used stronger shadow and CARLA/domain-randomization settings during training.
- Jumped far ahead of v2.1/v2.1b offline on the cleaned label set:
4.223 MAE on the current 1,464-label evaluation.
Specific Issues Observed / Remaining
- Field tested and entered grass after about
5 seconds.
- The v2.2 training family used horizontal flip augmentation, which did not match the physical RC-car field behavior.
- The same grass-entry failure pattern showed after about
5 seconds.
Output Meaning
| Output | Meaning |
|---|
0 | full left |
90 | straight |
180 | full right |
Evaluation Setup
- Eval set:
1464 images
- Failed samples:
0
- Corrections: applied from
steering_corrections.json (not a separate held-out count)
- Input format:
200x66, OpenCV BGR
- Output scale: servo angle
0..180
- Error unit: servo degrees
- Score formula:
max(0, 100 * (1 - absolute_error / 180))
Version Update Categories
| Version | Main update category | Data/status | Result |
|---|
1.7b | Known-good field rollback | photo_20260429 | 0.6 mi, 0 overtakes |
1.8 | Mainly shadow fixes | photo_20260502_12 | strong shadow subset improvement |
1.9 | Right hard turns, small curb hugging, smoother drive | photo_20260502_19 | best Series 1 field-relevant baseline |
2.0 | First HSV/CLAHE Series 2 model | D0503 harsh sidewalk + Series 2 preprocessing | legacy CLAHE baseline; failed 8pm field test |
2.0b | Best checkpoint from v2.0 training | same v2.0 training run | best checkpoint; failed 8pm field test |
2.1 | Raw-BGR augmentation Series 2 model | CARLA + real + corrections, no runtime CLAHE | returned newer Series 2 to raw BGR |
2.1b | Best checkpoint from v2.1 training | same v2.1 training run | slightly stronger v2.1 checkpoint offline |
2.2 | D0328/D0329 relabel + stronger augmentation | First Dataset relabel + shadow/domain augmentation | strong offline result; field failed by entering grass after about 5 seconds |
Evaluation Summary
| Model | Checkpoint | Full Score | MAE | Median AE | Max AE | Signed Error | Within 2° | Within 5° | Within 10° | Within 20° |
|---|
2.0 | SidewalkPilot-v2.0.pth | 93.727% | 11.292 | 4.931 | 149.967 | -2.598 | 464 / 1464 | 741 / 1464 | 938 / 1464 | 1179 / 1464 |
2.0b | SidewalkPilot-v2.0b.pth | 93.712% | 11.318 | 4.990 | 149.489 | -2.565 | 459 / 1464 | 735 / 1464 | 932 / 1464 | 1179 / 1464 |
2.1 | SidewalkPilot-v2.1.pth | 93.523% | 11.659 | 5.392 | 156.367 | -0.984 | 325 / 1464 | 660 / 1464 | 953 / 1464 | 1187 / 1464 |
2.1b | SidewalkPilot-v2.1b.pth | 93.564% | 11.585 | 5.425 | 155.585 | -0.988 | 325 / 1464 | 657 / 1464 | 954 / 1464 | 1188 / 1464 |
2.2 | SidewalkPilot-v2.2.pth | 97.654% | 4.223 | 3.304 | 35.452 | 0.250 | 479 / 1464 | 984 / 1464 | 1350 / 1464 | 1454 / 1464 |
Negative signed error means the model is left-biased on average.
Prediction Distribution
| Model | Pred Min | Pred Max | Pred Mean | Pred Median | Pred P05 | Pred P25 | Pred P75 | Pred P95 |
|---|
2.0 | 5.000 | 175.000 | 93.704 | 90.196 | 36.160 | 72.589 | 111.827 | 171.222 |
2.0b | 5.000 | 175.000 | 93.737 | 90.271 | 35.872 | 72.557 | 111.818 | 171.282 |
2.1 | 5.000 | 175.000 | 95.318 | 91.842 | 39.995 | 74.877 | 110.875 | 172.394 |
2.1b | 5.000 | 175.000 | 95.314 | 91.836 | 40.192 | 75.044 | 111.065 | 172.318 |
2.2 | 5.000 | 175.000 | 96.551 | 92.195 | 43.114 | 80.315 | 105.170 | 174.594 |
Ranking
| Rank In This Card | Model | Checkpoint | Score | MAE | Median AE | Max AE | Within 5° | Within 10° | Signed Error |
|---|
1 | 2.2 | SidewalkPilot-v2.2.pth | 97.654% | 4.223 | 3.304 | 35.452 | 984 / 1464 | 1350 / 1464 | 0.250 |
2 | 2.0 | SidewalkPilot-v2.0.pth | 93.727% | 11.292 | 4.931 | 149.967 | 741 / 1464 | 938 / 1464 | -2.598 |
3 | 2.0b | SidewalkPilot-v2.0b.pth | 93.712% | 11.318 | 4.990 | 149.489 | 735 / 1464 | 932 / 1464 | -2.565 |
4 | 2.1b | SidewalkPilot-v2.1b.pth | 93.564% | 11.585 | 5.425 | 155.585 | 657 / 1464 | 954 / 1464 | -0.988 |
5 | 2.1 | SidewalkPilot-v2.1.pth | 93.523% | 11.659 | 5.392 | 156.367 | 660 / 1464 | 953 / 1464 | -0.984 |
Field Case Comparison
| Model | D0328 First Dataset MAE | D0329 First Dataset MAE | D0425 street MAE | D0426 curves/shadows MAE | D0427 curved curb MAE | D0429 driveway/shadow MAE | D0502_12 shadow MAE | D0502_19 hard/curb/smooth MAE | D0503 harsh sidewalk MAE | D0506 8pm MAE |
|---|
2.0 | 17.969 | 20.509 | 2.707 | 2.028 | 2.573 | 1.688 | 2.349 | 2.257 | 1.663 | 35.998 |
2.0b | 18.092 | 20.539 | 2.688 | 2.024 | 2.565 | 1.702 | 2.318 | 2.247 | 1.660 | 35.795 |
2.1 | 19.698 | 20.132 | 3.692 | 3.256 | 3.893 | 3.317 | 4.136 | 3.621 | 2.467 | 3.598 |
2.1b | 19.653 | 19.958 | 3.647 | 3.187 | 3.813 | 3.327 | 4.098 | 3.636 | 2.420 | 3.636 |
2.2 | 3.839 | 3.619 | 5.420 | 4.700 | 5.660 | 4.392 | 5.685 | 4.739 | 3.531 | 2.505 |
Current Version Snapshot
- Model:
2.2
- Checkpoint:
SidewalkPilot-v2.2.pth
- Checkpoint created: 2026-05-09 05:41 PM America/Los_Angeles
- Full score:
97.654%
- MAE:
4.223 servo degrees
- Median AE:
3.304 servo degrees
- Rank in this card:
1 of 5 listed checkpoints
Intended Use
This model is intended for:
- RC car autonomy experiments
- Sidewalk/path steering research
- Raspberry Pi robotics projects
- Small-scale computer vision control systems
- Testing direct image-to-servo steering regression
Out-of-Scope Use
This model is not intended for:
- Real cars
- Public road vehicles
- Human transportation
- Safety-critical systems
- Fully autonomous deployment without external safety layers
System Context
1camera frame
2-> resize/normalize image
3-> PyTorch steering model
4-> predicted servo angle
5-> runtime decision logic
6-> LiDAR safety override when triggered
7-> final steering/throttle/brake command
8-> servo + motor controller
LiDAR runs as a higher-priority safety layer:
1LiDAR clear -> use model steering
2LiDAR obstacle -> LiDAR override mode
3LiDAR blocked/too close -> hard brake
Training Data
The model was trained on camera images collected from the RC car driving in sidewalk-like environments. Labels represent steering servo angles from 0 to 180 degrees.
Detailed dataset composition belongs in the dataset README, not this model card.
Preprocessing
During inference/evaluation, the Series 2 raw-BGR pipeline is:
1camera frame in OpenCV BGR
2-> resize to 200x66
3-> normalize with (x / 255 - 0.5) / 0.5
4-> PyTorch steering model
5-> servo angle
Do not use the v2.0 HSV/CLAHE preprocessing path with this checkpoint. The model expects the same raw-BGR tensor path used by the runtime for v2.1 and newer.
Limitations
SidewalkPilot-v2.2 can fail when lighting, sidewalk shape, camera angle, shadows, driveway cuts, curved curbs, grass edges, or evening conditions differ from the training data.
Offline MAE did not match field reliability: this checkpoint entered grass after about 5 seconds during field testing.
The model does not understand obstacles by itself and is not a standalone safety system.
Safety Recommendation
Do not use this model alone to control a robot. In the original project, LiDAR has priority over the model and can override steering or trigger hard braking.
Model Card Contact
Ram Shreyas Naik Sabavat
Links
- YouTube
- Docs
- Hugging Face
- GitHub
- Parts List
- Twitter
- [Grafana Labs](Adding Later...)
- [Weights and Biases](Adding Later...)
- Email