SidewalkPilot-v1.8b
SidewalkPilot-v1.8b is a PyTorch steering model for a small autonomous RC car. It takes a full camera frame as input and predicts a steering servo angle from 0 to 180 degrees.
The model is used for camera-based sidewalk/path following. In the full RC car stack, LiDAR runs above the model as a safety layer for obstacle avoidance, LiDAR override steering, and hard braking.
This is a best-checkpoint (b) variant from the same training version.
Model Details
- Developed by: Ram Shreyas Naik Sabavat
- Model type: CNN steering regression model
- Library: PyTorch
- License: Apache 2.0
- Checkpoint:
SidewalkPilot-v1.8b.pth - Checkpoint created: 2026-05-02 03:51 PM America/Los_Angeles
- Input: Full camera frame, resized/normalized before inference
- Evaluation input format:
200x66, OpenCV BGR - Output: Steering servo angle from
0to180
Specific Improvements
- Saved the best checkpoint from the v1.8 shadow-fix run.
- Kept the
20260502_12shadow fix at1.08MAE. - Nearly tied v1.8 final while preserving the same raw-BGR Series 1 path.
Specific Issues Observed / Remaining
- Slightly behind v1.8 final in full score.
- Still weak on
20260502_19hard-right/curb-smoothness cases. - Did not change the main remaining problem after v1.8: hard-right turns and curb hugging.
Output Meaning
| Output | Meaning |
|---|---|
0 |
full left |
90 |
straight |
180 |
full right |
Evaluation Setup
- Eval set:
1,287images - Failed samples:
0 - Corrections included:
564 - 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.0 |
Baseline steering | initial mixed sidewalk/CARLA set |
complete |
1.0b |
Best-checkpoint variant of baseline | same v1.0 training run |
complete |
1.1 |
Street-test correction pass | manual street corrections |
complete |
1.1b |
Best checkpoint from street-correction pass | same v1.1 training run |
complete |
1.2 |
Best early field behavior | no-weather tuning + manual corrections |
complete |
1.2b |
Best checkpoint from early field-behavior run | same v1.2 training run |
complete |
1.3 |
Smoothness / aggression tuning | same dataset family |
complete |
1.3b |
Best checkpoint from smoothness/aggression run | same v1.3 training run |
complete |
1.4 |
Curves + sloped shadow fixes | photo_20260426 |
complete |
1.4b |
Best checkpoint from curves/shadows run | photo_20260426 |
complete |
1.5 |
Curved curb interpreted as sidewalk | photo_20260427 |
complete |
1.5b |
Best checkpoint from curved-curb run | photo_20260427 |
complete |
1.6 |
Driveway failure fix | photo_20260428 |
complete |
1.6b |
Best checkpoint from driveway run | photo_20260428 |
complete |
1.7 |
Driveway + shadow field fixes | photo_20260429 |
field validated |
1.7b |
Known-good field rollback | photo_20260429 |
0.6 mi, 0 overtakes |
1.8 |
Mainly shadow fixes | photo_20260502_12 |
offline leader before 1.9 |
1.8b |
Best checkpoint from shadow-fix run | photo_20260502_12 |
near tie with 1.8 final |
Evaluation Summary
| Model | Checkpoint | Full Score | MAE | Median AE | Max AE | Signed Error | Within 2° | Within 5° | Within 10° | Within 20° |
|---|---|---|---|---|---|---|---|---|---|---|
1.0 |
SidewalkPilot-v1.0.pth |
88.339% |
20.990 |
9.934 |
151.830 |
-7.262 |
202 / 1287 |
423 / 1287 |
648 / 1287 |
869 / 1287 |
1.0b |
SidewalkPilot-v1.0b.pth |
88.292% |
21.075 |
10.234 |
152.629 |
-6.691 |
179 / 1287 |
410 / 1287 |
640 / 1287 |
866 / 1287 |
1.1 |
SidewalkPilot-v1.1.pth |
92.372% |
13.730 |
3.886 |
144.676 |
-6.197 |
434 / 1287 |
746 / 1287 |
916 / 1287 |
1044 / 1287 |
1.1b |
SidewalkPilot-v1.1b.pth |
92.372% |
13.730 |
3.886 |
144.676 |
-6.197 |
434 / 1287 |
746 / 1287 |
916 / 1287 |
1044 / 1287 |
1.2 |
SidewalkPilot-v1.2.pth |
93.634% |
11.459 |
1.018 |
140.617 |
-5.314 |
748 / 1287 |
843 / 1287 |
945 / 1287 |
1058 / 1287 |
1.2b |
SidewalkPilot-v1.2b.pth |
93.585% |
11.548 |
1.281 |
140.920 |
-5.296 |
712 / 1287 |
849 / 1287 |
948 / 1287 |
1068 / 1287 |
1.3 |
SidewalkPilot-v1.3.pth |
93.502% |
11.697 |
1.765 |
148.944 |
-5.557 |
670 / 1287 |
845 / 1287 |
955 / 1287 |
1069 / 1287 |
1.3b |
SidewalkPilot-v1.3b.pth |
93.223% |
12.199 |
3.005 |
140.762 |
-5.423 |
483 / 1287 |
823 / 1287 |
961 / 1287 |
1070 / 1287 |
1.4 |
SidewalkPilot-v1.4.pth |
94.079% |
10.657 |
2.194 |
132.078 |
-4.997 |
613 / 1287 |
899 / 1287 |
1008 / 1287 |
1102 / 1287 |
1.4b |
SidewalkPilot-v1.4b.pth |
93.840% |
11.087 |
2.960 |
131.227 |
-5.101 |
513 / 1287 |
845 / 1287 |
1012 / 1287 |
1099 / 1287 |
1.5 |
SidewalkPilot-v1.5.pth |
94.337% |
10.193 |
3.711 |
112.289 |
-3.734 |
443 / 1287 |
766 / 1287 |
1011 / 1287 |
1123 / 1287 |
1.5b |
SidewalkPilot-v1.5b.pth |
94.337% |
10.193 |
3.711 |
112.289 |
-3.734 |
443 / 1287 |
766 / 1287 |
1011 / 1287 |
1123 / 1287 |
1.6 |
SidewalkPilot-v1.6.pth |
94.540% |
9.828 |
3.953 |
131.186 |
-2.877 |
442 / 1287 |
776 / 1287 |
1013 / 1287 |
1124 / 1287 |
1.6b |
SidewalkPilot-v1.6b.pth |
94.522% |
9.860 |
3.848 |
130.713 |
-3.025 |
436 / 1287 |
774 / 1287 |
1006 / 1287 |
1126 / 1287 |
1.7 |
SidewalkPilot-v1.7.pth |
94.956% |
9.079 |
3.523 |
108.732 |
-2.665 |
465 / 1287 |
801 / 1287 |
1007 / 1287 |
1151 / 1287 |
1.7b |
SidewalkPilot-v1.7b.pth |
94.979% |
9.039 |
3.470 |
109.148 |
-2.887 |
470 / 1287 |
804 / 1287 |
1007 / 1287 |
1150 / 1287 |
1.8 |
SidewalkPilot-v1.8.pth |
95.702% |
7.737 |
3.273 |
110.699 |
-3.228 |
510 / 1287 |
831 / 1287 |
1054 / 1287 |
1198 / 1287 |
1.8b |
SidewalkPilot-v1.8b.pth |
95.697% |
7.746 |
3.171 |
110.106 |
-3.220 |
514 / 1287 |
828 / 1287 |
1055 / 1287 |
1196 / 1287 |
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 |
|---|---|---|---|---|---|---|---|---|
1.0 |
8.459 |
174.146 |
89.579 |
89.676 |
37.520 |
68.904 |
108.229 |
145.649 |
1.0b |
9.009 |
173.933 |
90.149 |
89.734 |
38.399 |
70.772 |
108.074 |
144.783 |
1.1 |
4.000 |
176.000 |
90.643 |
89.761 |
37.944 |
72.754 |
106.427 |
152.011 |
1.1b |
4.000 |
176.000 |
90.643 |
89.761 |
37.944 |
72.754 |
106.427 |
152.011 |
1.2 |
4.000 |
176.000 |
91.526 |
91.271 |
41.237 |
72.686 |
108.045 |
149.390 |
1.2b |
4.000 |
176.000 |
91.544 |
91.210 |
40.153 |
72.763 |
107.837 |
149.399 |
1.3 |
4.000 |
176.000 |
91.283 |
90.486 |
40.523 |
73.660 |
106.509 |
149.883 |
1.3b |
4.000 |
176.000 |
91.417 |
90.950 |
41.317 |
74.564 |
105.508 |
149.390 |
1.4 |
4.000 |
176.000 |
91.843 |
90.920 |
40.737 |
74.986 |
106.295 |
154.155 |
1.4b |
4.000 |
176.000 |
91.740 |
90.955 |
39.214 |
74.615 |
105.238 |
154.870 |
1.5 |
4.000 |
176.000 |
93.107 |
90.536 |
41.311 |
74.592 |
109.059 |
162.565 |
1.5b |
4.000 |
176.000 |
93.107 |
90.536 |
41.311 |
74.592 |
109.059 |
162.565 |
1.6 |
4.000 |
176.000 |
93.963 |
92.289 |
40.245 |
73.353 |
109.929 |
167.733 |
1.6b |
4.000 |
176.000 |
93.816 |
91.941 |
40.197 |
73.651 |
109.786 |
167.452 |
1.7 |
4.000 |
176.000 |
94.175 |
91.512 |
39.126 |
74.491 |
110.930 |
165.057 |
1.7b |
4.000 |
176.000 |
93.954 |
91.184 |
38.861 |
74.424 |
110.936 |
164.965 |
1.8 |
4.000 |
176.000 |
93.613 |
90.857 |
38.486 |
73.404 |
109.949 |
165.694 |
1.8b |
4.000 |
176.000 |
93.620 |
90.740 |
38.531 |
73.574 |
109.985 |
165.781 |
Ranking
| Rank In This Card | Model | Checkpoint | Score | MAE | Median AE | Max AE | Within 5° | Within 10° | Signed Error |
|---|---|---|---|---|---|---|---|---|---|
1 |
1.8 |
SidewalkPilot-v1.8.pth |
95.702% |
7.737 |
3.273 |
110.699 |
831 / 1287 |
1054 / 1287 |
-3.228 |
2 |
1.8b |
SidewalkPilot-v1.8b.pth |
95.697% |
7.746 |
3.171 |
110.106 |
828 / 1287 |
1055 / 1287 |
-3.220 |
3 |
1.7b |
SidewalkPilot-v1.7b.pth |
94.979% |
9.039 |
3.470 |
109.148 |
804 / 1287 |
1007 / 1287 |
-2.887 |
4 |
1.7 |
SidewalkPilot-v1.7.pth |
94.956% |
9.079 |
3.523 |
108.732 |
801 / 1287 |
1007 / 1287 |
-2.665 |
5 |
1.6 |
SidewalkPilot-v1.6.pth |
94.540% |
9.828 |
3.953 |
131.186 |
776 / 1287 |
1013 / 1287 |
-2.877 |
6 |
1.6b |
SidewalkPilot-v1.6b.pth |
94.522% |
9.860 |
3.848 |
130.713 |
774 / 1287 |
1006 / 1287 |
-3.025 |
7 |
1.5 |
SidewalkPilot-v1.5.pth |
94.337% |
10.193 |
3.711 |
112.289 |
766 / 1287 |
1011 / 1287 |
-3.734 |
8 |
1.5b |
SidewalkPilot-v1.5b.pth |
94.337% |
10.193 |
3.711 |
112.289 |
766 / 1287 |
1011 / 1287 |
-3.734 |
9 |
1.4 |
SidewalkPilot-v1.4.pth |
94.079% |
10.657 |
2.194 |
132.078 |
899 / 1287 |
1008 / 1287 |
-4.997 |
10 |
1.4b |
SidewalkPilot-v1.4b.pth |
93.840% |
11.087 |
2.960 |
131.227 |
845 / 1287 |
1012 / 1287 |
-5.101 |
11 |
1.2 |
SidewalkPilot-v1.2.pth |
93.634% |
11.459 |
1.018 |
140.617 |
843 / 1287 |
945 / 1287 |
-5.314 |
12 |
1.2b |
SidewalkPilot-v1.2b.pth |
93.585% |
11.548 |
1.281 |
140.920 |
849 / 1287 |
948 / 1287 |
-5.296 |
13 |
1.3 |
SidewalkPilot-v1.3.pth |
93.502% |
11.697 |
1.765 |
148.944 |
845 / 1287 |
955 / 1287 |
-5.557 |
14 |
1.3b |
SidewalkPilot-v1.3b.pth |
93.223% |
12.199 |
3.005 |
140.762 |
823 / 1287 |
961 / 1287 |
-5.423 |
15 |
1.1 |
SidewalkPilot-v1.1.pth |
92.372% |
13.730 |
3.886 |
144.676 |
746 / 1287 |
916 / 1287 |
-6.197 |
16 |
1.1b |
SidewalkPilot-v1.1b.pth |
92.372% |
13.730 |
3.886 |
144.676 |
746 / 1287 |
916 / 1287 |
-6.197 |
17 |
1.0 |
SidewalkPilot-v1.0.pth |
88.339% |
20.990 |
9.934 |
151.830 |
423 / 1287 |
648 / 1287 |
-7.262 |
18 |
1.0b |
SidewalkPilot-v1.0b.pth |
88.292% |
21.075 |
10.234 |
152.629 |
410 / 1287 |
640 / 1287 |
-6.691 |
Field Case Comparison
| Model | D26 curves/shadows MAE | D27 curved curb MAE | D28 driveway MAE | D29 driveway/shadow MAE | 20260502_12 shadow MAE | 20260502_19 hard/curb/smooth MAE |
|---|---|---|---|---|---|---|
1.0 |
44.12 |
53.69 |
56.18 |
37.44 |
29.57 |
29.57 |
1.0b |
42.85 |
54.06 |
57.52 |
37.39 |
29.16 |
29.76 |
1.1 |
38.93 |
36.60 |
83.08 |
33.44 |
21.42 |
26.13 |
1.1b |
38.93 |
36.60 |
83.08 |
33.44 |
21.42 |
26.13 |
1.2 |
36.54 |
31.76 |
64.48 |
25.38 |
20.86 |
22.74 |
1.2b |
35.95 |
32.11 |
61.94 |
25.46 |
21.01 |
22.78 |
1.3 |
35.00 |
34.06 |
74.95 |
25.26 |
19.51 |
22.92 |
1.3b |
34.10 |
35.63 |
71.75 |
24.12 |
19.66 |
22.96 |
1.4 |
3.66 |
31.68 |
70.03 |
25.83 |
18.73 |
24.32 |
1.4b |
3.82 |
31.91 |
71.01 |
26.65 |
19.21 |
24.41 |
1.5 |
3.98 |
0.99 |
87.18 |
25.74 |
18.59 |
21.06 |
1.5b |
3.98 |
0.99 |
87.18 |
25.74 |
18.59 |
21.06 |
1.6 |
3.93 |
1.10 |
2.36 |
26.32 |
18.91 |
22.37 |
1.6b |
4.00 |
1.10 |
2.03 |
26.22 |
19.02 |
22.32 |
1.7 |
4.22 |
1.23 |
1.82 |
0.93 |
17.51 |
22.41 |
1.7b |
4.13 |
1.22 |
1.95 |
1.01 |
17.43 |
22.25 |
1.8 |
4.27 |
1.42 |
2.19 |
0.96 |
1.08 |
22.20 |
1.8b |
4.28 |
1.42 |
2.27 |
0.97 |
1.08 |
22.17 |
Current Version Snapshot
- Model:
1.8b - Checkpoint:
SidewalkPilot-v1.8b.pth - Checkpoint created: 2026-05-02 03:51 PM America/Los_Angeles
- Full score:
95.697% - MAE:
7.746servo degrees - Median AE:
3.171servo degrees - Rank in this card:
2of18checkpoints
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 steering regression from camera images
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
The full RC car autonomy stack uses layered control:
camera frame
-> resize/normalize image
-> PyTorch steering model
-> predicted servo angle (0-180)
-> runtime decision logic
-> LiDAR safety override when triggered
-> final steering/throttle/brake command
-> servo + motor controller
LiDAR runs as a higher-priority safety layer:
LiDAR clear
-> use model steering
LiDAR obstacle
-> LiDAR override mode
LiDAR blocked/too close
-> hard brake
The model handles normal path following, while LiDAR handles obstacle avoidance and emergency behavior.
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 pipeline:
- Captures the full camera frame.
- Resizes the image to
200x66. - Uses OpenCV BGR image ordering.
- Normalizes pixel values with
(x / 255 - 0.5) / 0.5. - Runs the PyTorch model.
- Clamps the output to
0..180.
The model sees the whole frame, not a cropped region.
Limitations
SidewalkPilot models can fail when lighting, sidewalk shape, camera angle, shadows, driveway cuts, curved curbs, hard turns, or curb-hugging cases differ from the training data.
The model does not understand obstacles by itself and is not a standalone safety system.
Use with external safety logic, manual override, and obstacle detection.
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