CoastingDetectorAnalyzer - Rally Stage - Aston Martin DBR9
Coasting detection: time spent on neither throttle nor brake
Sample Data
| Attribute | Value |
|---|---|
| Source | motec |
| Category | rally_stage |
| File | /Users/mhild/src/durandom/racing/b4racing/packages/source-motec/tests/fixtures/telemetry-NGP-Car_5-Aston_Martin_DBR9-Stage_138-20260122_120000.ld |
Available Channels: brake, clutch, distance, gear, lap_distance_pct, lat_accel, long_accel, pitch, position_x, position_y, position_z, raw_LB.brakeDiskLayerTemp, raw_LB.brakeDiskTemp, raw_LB.brakeWear, raw_LB.currentTyreSegment, raw_LB.dampingForce, raw_LB.deflectionVelocity, raw_LB.helperSpringActive, raw_LB.innerBumpDeflectionVelocity, raw_LB.outerBumpDeflectionVelocity, raw_LB.rollbarForce, raw_LB.segmentData[0].temperature, raw_LB.segmentData[1].temperature, raw_LB.segmentData[2].temperature, raw_LB.segmentData[3].temperature, raw_LB.segmentData[4].temperature, raw_LB.segmentData[5].temperature, raw_LB.segmentData[6].temperature, raw_LB.segmentData[7].temperature, raw_LB.springForce, raw_LB.strutForce, raw_LB.temperature, raw_LB.treadTemperature, raw_LB.wear[0], raw_LB.wear[1], raw_LB.wear[2], raw_LB.wear[3], raw_LB.wear[4], raw_LB.wear[5], raw_LB.wear[6], raw_LB.wear[7], raw_LF.brakeDiskLayerTemp, raw_LF.brakeDiskTemp, raw_LF.brakeWear, raw_LF.currentTyreSegment, raw_LF.dampingForce, raw_LF.deflectionVelocity, raw_LF.helperSpringActive, raw_LF.innerBumpDeflectionVelocity, raw_LF.outerBumpDeflectionVelocity, raw_LF.rollbarForce, raw_LF.segmentData[0].temperature, raw_LF.segmentData[1].temperature, raw_LF.segmentData[2].temperature, raw_LF.segmentData[3].temperature, raw_LF.segmentData[4].temperature, raw_LF.segmentData[5].temperature, raw_LF.segmentData[6].temperature, raw_LF.segmentData[7].temperature, raw_LF.springForce, raw_LF.strutForce, raw_LF.temperature, raw_LF.treadTemperature, raw_LF.wear[0], raw_LF.wear[1], raw_LF.wear[2], raw_LF.wear[3], raw_LF.wear[4], raw_LF.wear[5], raw_LF.wear[6], raw_LF.wear[7], raw_RB.brakeDiskLayerTemp, raw_RB.brakeDiskTemp, raw_RB.brakeWear, raw_RB.currentTyreSegment, raw_RB.dampingForce, raw_RB.deflectionVelocity, raw_RB.helperSpringActive, raw_RB.innerBumpDeflectionVelocity, raw_RB.outerBumpDeflectionVelocity, raw_RB.rollbarForce, raw_RB.segmentData[0].temperature, raw_RB.segmentData[1].temperature, raw_RB.segmentData[2].temperature, raw_RB.segmentData[3].temperature, raw_RB.segmentData[4].temperature, raw_RB.segmentData[5].temperature, raw_RB.segmentData[6].temperature, raw_RB.segmentData[7].temperature, raw_RB.springForce, raw_RB.strutForce, raw_RB.temperature, raw_RB.treadTemperature, raw_RB.wear[0], raw_RB.wear[1], raw_RB.wear[2], raw_RB.wear[3], raw_RB.wear[4], raw_RB.wear[5], raw_RB.wear[6], raw_RB.wear[7], raw_RF.brakeDiskLayerTemp, raw_RF.brakeDiskTemp, raw_RF.brakeWear, raw_RF.currentTyreSegment, raw_RF.dampingForce, raw_RF.deflectionVelocity, raw_RF.helperSpringActive, raw_RF.innerBumpDeflectionVelocity, raw_RF.outerBumpDeflectionVelocity, raw_RF.rollbarForce, raw_RF.segmentData[0].temperature, raw_RF.segmentData[1].temperature, raw_RF.segmentData[2].temperature, raw_RF.segmentData[3].temperature, raw_RF.segmentData[4].temperature, raw_RF.segmentData[5].temperature, raw_RF.segmentData[6].temperature, raw_RF.segmentData[7].temperature, raw_RF.springForce, raw_RF.strutForce, raw_RF.temperature, raw_RF.treadTemperature, raw_RF.wear[0], raw_RF.wear[1], raw_RF.wear[2], raw_RF.wear[3], raw_RF.wear[4], raw_RF.wear[5], raw_RF.wear[6], raw_RF.wear[7], raw_distanceToEnd, raw_driveLineLocation, raw_engineCoolantHeatState.temperatu, raw_engineTemperature, raw_footbrakePressure, raw_handbrakePressure, raw_raceTime, raw_radiatorCoolantHeatState.tempera, raw_steering, raw_vecAngularAccelerationCar.x, raw_vecAngularAccelerationCar.y, raw_vecAngularAccelerationCar.z, raw_vecAngularVelocityCar.x, raw_vecAngularVelocityCar.y, raw_vecAngularVelocityCar.z, raw_vecAvgAngularAccelerationCar.x, raw_vecAvgAngularAccelerationCar.y, raw_vecAvgAngularAccelerationCar.z, raw_vecAvgLinearAccelerationCar.x, raw_vecAvgLinearAccelerationCar.y, raw_vecAvgLinearAccelerationCar.z, raw_vecRelativeAngularAcceleration.x, raw_vecRelativeAngularAcceleration.y, raw_vecRelativeAngularAcceleration.z, raw_vecRelativeAngularVelocity.x, raw_vecRelativeAngularVelocity.y, raw_vecRelativeAngularVelocity.z, raw_vecRelativeLinearAcceleration.x, raw_vecRelativeLinearAcceleration.y, raw_vecRelativeLinearAcceleration.z, raw_vecRelativeLinearVelocity.x, raw_vecRelativeLinearVelocity.y, raw_vecRelativeLinearVelocity.z, roll, rpm, speed, speed_kph, speed_mph, steering, suspension_fl_travel, suspension_fr_travel, suspension_rl_travel, suspension_rr_travel, throttle, time, tire_pressure_fl, tire_pressure_fr, tire_pressure_rl, tire_pressure_rr, tire_temp_fl, tire_temp_fr, tire_temp_rl, tire_temp_rr, track_pct, velocity_x, velocity_y, velocity_z, vert_accel, yaw
Configuration
| Setting | Value |
|---|---|
| Slice Type | lap |
| Metadata Only | False |
| Required Channels | throttle, brake, time |
When to Use
- User asks about pedal control or coasting
- User wants to know if they're maintaining car control
- User asks 'am I coasting too much?'
- User wants to improve weight transfer management
Key Options
| Option | Description |
|---|---|
lap_selection | all |
throttle_threshold | Threshold below which throttle is 'off' (default: 0.05) |
brake_threshold | Threshold below which brake is 'off' (default: 0.05) |
Sample Output
Subjects Analyzed: 1
Short Duration (Default)
Options: min_coast_duration_seconds=0.1
{
"metrics": [
{
"subject_id": "d0c8e5bbf805540b",
"driver_name": "RSF driver",
"coasting_pct": 0.2170458404074703,
"coasting_event_count": 24,
"total_coasting_time_seconds": 19.8277354244016,
"avg_coast_duration_seconds": 0.8261556426833999,
"max_coast_duration_seconds": 5.958738001448881,
"control_score": 0.5659083191850593,
"coasting_pct_formatted": "21.7%",
"control_score_formatted": "57%"
}
],
"coasting_events": {
"d0c8e5bbf805540b": [
{
"start_distance_m": 0.0,
"end_distance_m": 0.0,
"duration_seconds": 0.5625382029339854,
"start_speed_kmh": 0.0,
"end_speed_kmh": 0.0
},
{
"start_distance_m": 0.0,
"end_distance_m": 0.008196850307285786,
"duration_seconds": 5.958738001448881,
"start_speed_kmh": 0.0,
"end_speed_kmh": 0.0
},
{
"start_distance_m": 27.507999420166016,
"end_distance_m": 31.626100540161133,
"duration_seconds": 0.4305847973074961,
"start_speed_kmh": 13.968528111775715,
"end_speed_kmh": 12.786055670844183
},
{
"start_distance_m": 36.973201751708984,
"end_distance_m": 39.72999954223633,
"duration_seconds": 0.29168647559539984,
"start_speed_kmh": 14.378666347927517,
"end_speed_kmh": 12.855666478474934
},
{
"start_distance_m": 132.85800170898438,
"end_distance_m": 132.85800170898438,
"duration_seconds": 0.13195340562648994,
"start_speed_kmh": 0.0,
"end_speed_kmh": 0.0
},
{
"start_distance_m": 163.82000732421875,
"end_distance_m": 164.56700134277344,
"duration_seconds": 0.1111186573696763,
"start_speed_kmh": 8.977861404418945,
"end_speed_kmh": 8.655861218770346
},
{
"start_distance_m": 181.4759979248047,
"end_distance_m": 184.48300170898438,
"duration_seconds": 0.38891530079386527,
"start_speed_kmh": 14.09269438849555,
"end_speed_kmh": 7.804889149136013
},
{
"start_distance_m": 212.36700439453125,
"end_distance_m": 215.38099670410156,
"duration_seconds": 0.36808055253705163,
"start_speed_kmh": 11.520582834879557,
"end_speed_kmh": 10.572250154283312
},
{
"start_distance_m": 222.28599548339844,
"end_distance_m": 225.49400329589844,
"duration_seconds": 0.4722542938211234,
"start_speed_kmh": 13.073916965060764,
"end_speed_kmh": 5.509416792127821
},
{
"start_distance_m": 252.89500427246094,
"end_distance_m": 254.15899658203125,
"duration_seconds": 0.11806357345528085,
"start_speed_kmh": 16.46238856845432,
"end_speed_kmh": 15.252694023980034
},
{
"start_distance_m": 256.7900085449219,
"end_distance_m": 259.48199462890625,
"duration_seconds": 0.27085172733858087,
"start_speed_kmh": 14.95349989997016,
"end_speed_kmh": 13.46933364868164
},
{
"start_distance_m": 317.76300048828125,
"end_distance_m": 323.17401123046875,
"duration_seconds": 0.2639068112529799,
"start_speed_kmh": 29.288334316677517,
"end_speed_kmh": 28.242499033610024
},
{
"start_distance_m": 350.1310119628906,
"end_distance_m": 351.3800048828125,
"duration_seconds": 0.17362290214011722,
"start_speed_kmh": 9.35313860575358,
"end_speed_kmh": 9.178166919284397
},
{
"start_distance_m": 459.34600830078125,
"end_distance_m": 464.50201416015625,
"duration_seconds": 0.4583644616499143,
"start_speed_kmh": 21.408138275146484,
"end_speed_kmh": 10.413389205932617
},
{
"start_distance_m": 468.3500061035156,
"end_distance_m": 469.3999938964844,
"duration_seconds": 2.395996049533643,
"start_speed_kmh": 7.944944699605306,
"end_speed_kmh": 1.0406277577082317
},
{
"start_distance_m": 473.7829895019531,
"end_distance_m": 479.32501220703125,
"duration_seconds": 0.9236738393854296,
"start_speed_kmh": 15.035249922010633,
"end_speed_kmh": 5.124833318922255
},
{
"start_distance_m": 634.0289916992188,
"end_distance_m": 641.39599609375,
"duration_seconds": 0.4583644616499214,
"start_speed_kmh": 23.28627692328559,
"end_speed_kmh": 22.25577672322591
},
{
"start_distance_m": 661.0599975585938,
"end_distance_m": 662.4019775390625,
"duration_seconds": 0.11111865736968696,
"start_speed_kmh": 15.536638895670572,
"end_speed_kmh": 16.25955581665039
},
{
"start_distance_m": 726.031982421875,
"end_distance_m": 730.5040283203125,
"duration_seconds": 0.5833729511907961,
"start_speed_kmh": 10.886110729641384,
"end_speed_kmh": 9.668416976928711
},
{
"start_distance_m": 734.81201171875,
"end_distance_m": 734.8140258789062,
"duration_seconds": 4.444746294787038,
"start_speed_kmh": 0.0,
"end_speed_kmh": 0.0
},
{
"start_distance_m": 757.8770141601562,
"end_distance_m": 762.4500122070312,
"duration_seconds": 0.4514195455643204,
"start_speed_kmh": 15.88186158074273,
"end_speed_kmh": 13.63944477505154
},
{
"start_distance_m": 838.364990234375,
"end_distance_m": 840.7570190429688,
"duration_seconds": 0.14584323779770614,
"start_speed_kmh": 23.48730511135525,
"end_speed_kmh": 22.411778767903645
},
{
"start_distance_m": 890.4979858398438,
"end_distance_m": 893.1810302734375,
"duration_seconds": 0.14584323779770614,
"start_speed_kmh": 27.49597125583225,
"end_speed_kmh": 26.487721337212456
},
{
"start_distance_m": 915.2319946289062,
"end_distance_m": 917.281982421875,
"duration_seconds": 0.16667798605450912,
"start_speed_kmh": 17.29599952697754,
"end_speed_kmh": 16.857805252075195
}
]
},
"metadata": {
"analyzer": "coasting_detector",
"title": "Coasting Detection",
"subjects_analyzed": 1
}
}
Metrics Summary
| Metric | Value |
|---|---|
| Subject: d0c8e5bbf805540b | RSF driver |
Longer Duration
Options: min_coast_duration_seconds=0.3
{
"metrics": [
{
"subject_id": "d0c8e5bbf805540b",
"driver_name": "RSF driver",
"coasting_pct": 0.2170458404074703,
"coasting_event_count": 13,
"total_coasting_time_seconds": 17.897048752603467,
"avg_coast_duration_seconds": 1.3766960578925744,
"max_coast_duration_seconds": 5.958738001448881,
"control_score": 0.5659083191850593,
"coasting_pct_formatted": "21.7%",
"control_score_formatted": "57%"
}
],
"coasting_events": {
"d0c8e5bbf805540b": [
{
"start_distance_m": 0.0,
"end_distance_m": 0.0,
"duration_seconds": 0.5625382029339854,
"start_speed_kmh": 0.0,
"end_speed_kmh": 0.0
},
{
"start_distance_m": 0.0,
"end_distance_m": 0.008196850307285786,
"duration_seconds": 5.958738001448881,
"start_speed_kmh": 0.0,
"end_speed_kmh": 0.0
},
{
"start_distance_m": 27.507999420166016,
"end_distance_m": 31.626100540161133,
"duration_seconds": 0.4305847973074961,
"start_speed_kmh": 13.968528111775715,
"end_speed_kmh": 12.786055670844183
},
{
"start_distance_m": 181.4759979248047,
"end_distance_m": 184.48300170898438,
"duration_seconds": 0.38891530079386527,
"start_speed_kmh": 14.09269438849555,
"end_speed_kmh": 7.804889149136013
},
{
"start_distance_m": 212.36700439453125,
"end_distance_m": 215.38099670410156,
"duration_seconds": 0.36808055253705163,
"start_speed_kmh": 11.520582834879557,
"end_speed_kmh": 10.572250154283312
},
{
"start_distance_m": 222.28599548339844,
"end_distance_m": 225.49400329589844,
"duration_seconds": 0.4722542938211234,
"start_speed_kmh": 13.073916965060764,
"end_speed_kmh": 5.509416792127821
},
{
"start_distance_m": 459.34600830078125,
"end_distance_m": 464.50201416015625,
"duration_seconds": 0.4583644616499143,
"start_speed_kmh": 21.408138275146484,
"end_speed_kmh": 10.413389205932617
},
{
"start_distance_m": 468.3500061035156,
"end_distance_m": 469.3999938964844,
"duration_seconds": 2.395996049533643,
"start_speed_kmh": 7.944944699605306,
"end_speed_kmh": 1.0406277577082317
},
{
"start_distance_m": 473.7829895019531,
"end_distance_m": 479.32501220703125,
"duration_seconds": 0.9236738393854296,
"start_speed_kmh": 15.035249922010633,
"end_speed_kmh": 5.124833318922255
},
{
"start_distance_m": 634.0289916992188,
"end_distance_m": 641.39599609375,
"duration_seconds": 0.4583644616499214,
"start_speed_kmh": 23.28627692328559,
"end_speed_kmh": 22.25577672322591
},
{
"start_distance_m": 726.031982421875,
"end_distance_m": 730.5040283203125,
"duration_seconds": 0.5833729511907961,
"start_speed_kmh": 10.886110729641384,
"end_speed_kmh": 9.668416976928711
},
{
"start_distance_m": 734.81201171875,
"end_distance_m": 734.8140258789062,
"duration_seconds": 4.444746294787038,
"start_speed_kmh": 0.0,
"end_speed_kmh": 0.0
},
{
"start_distance_m": 757.8770141601562,
"end_distance_m": 762.4500122070312,
"duration_seconds": 0.4514195455643204,
"start_speed_kmh": 15.88186158074273,
"end_speed_kmh": 13.63944477505154
}
]
},
"metadata": {
"analyzer": "coasting_detector",
"title": "Coasting Detection",
"subjects_analyzed": 1
}
}
Metrics Summary
| Metric | Value |
|---|---|
| Subject: d0c8e5bbf805540b | RSF driver |
Example Calls
Am I coasting too much
analyze(analyzers='coasting_detector', event='...')
Detects time spent on neither pedal
Generated from b4racing.analysis.analyzers.coasting_detector.CoastingDetectorAnalyzer