Skip to main content

RallyBrakingAnalyzer - Rally Stage - Aston Martin DBR9

Rally braking analysis: threshold braking, trail-off quality

Sample Data

AttributeValue
Sourcemotec
Categoryrally_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

SettingValue
Slice Typelap
Metadata OnlyFalse
Required Channelsbrake, speed, time

When to Use

  • User asks about rally braking technique
  • User wants to know if they're using threshold braking
  • User asks about trail braking or progressive brake release
  • User wants to improve braking consistency

Key Options

OptionDescription
lap_selectionall
threshold_brake_ratioRatio of initial/max for threshold braking (default: 0.8)
brake_thresholdMinimum pressure to detect braking (default: 0.1)

Sample Output

Subjects Analyzed: 1

Default Threshold

Options: threshold_brake_ratio=0.8

{
"metrics": [
{
"subject_id": "d0c8e5bbf805540b",
"driver_name": "RSF driver",
"brake_event_count": 10,
"threshold_brake_count": 0,
"threshold_brake_pct": 0.0,
"avg_trail_off_quality": 0.9807204220160267,
"initial_attack_score": 0.501685291776087,
"avg_speed_reduction_kmh": 21.94945822821723,
"avg_max_pressure": 0.41590760201215743,
"threshold_brake_formatted": "0%",
"trail_off_formatted": "98%",
"initial_attack_formatted": "50%"
}
],
"brake_events": {
"d0c8e5bbf805540b": [
{
"distance_m": 104.39600372314453,
"time_seconds": 16.841421507591537,
"initial_speed_kmh": 28.080276913113064,
"initial_pressure": 0.10913299769163132,
"max_pressure": 0.7925230264663696,
"time_to_max_ms": 409.7500490506789,
"trail_off_quality": 0.9805347234583818,
"is_threshold_braking": false
},
{
"distance_m": 129.8249969482422,
"time_seconds": 18.966565829786592,
"initial_speed_kmh": 13.612527847290039,
"initial_pressure": 0.11279500275850296,
"max_pressure": 0.40160199999809265,
"time_to_max_ms": 270.8517273385844,
"trail_off_quality": 0.9772206155153421,
"is_threshold_braking": false
},
{
"distance_m": 323.45599365234375,
"time_seconds": 40.398576869962874,
"initial_speed_kmh": 28.214999304877388,
"initial_pressure": 0.10131999850273132,
"max_pressure": 0.8367589712142944,
"time_to_max_ms": 597.2627833620123,
"trail_off_quality": 0.9771036080954993,
"is_threshold_braking": false
},
{
"distance_m": 413.6619873046875,
"time_seconds": 47.26709887862598,
"initial_speed_kmh": 27.22044414944119,
"initial_pressure": 0.11792200058698654,
"max_pressure": 0.4313879907131195,
"time_to_max_ms": 187.5127343113263,
"trail_off_quality": 0.9710309831425548,
"is_threshold_braking": false
},
{
"distance_m": 424.6260070800781,
"time_seconds": 47.961590487186456,
"initial_speed_kmh": 19.98233371310764,
"initial_pressure": 0.10473799705505371,
"max_pressure": 0.21045200526714325,
"time_to_max_ms": 166.67798605451623,
"trail_off_quality": 0.9667353113181889,
"is_threshold_braking": false
},
{
"distance_m": 539.3350219726562,
"time_seconds": 61.35138870023243,
"initial_speed_kmh": 24.790333641899956,
"initial_pressure": 0.10131999850273132,
"max_pressure": 0.518090009689331,
"time_to_max_ms": 284.74155950979707,
"trail_off_quality": 0.9867132890128321,
"is_threshold_braking": false
},
{
"distance_m": 565.9459838867188,
"time_seconds": 63.39319402940023,
"initial_speed_kmh": 16.971944173177082,
"initial_pressure": 0.10473799705505371,
"max_pressure": 0.13745300471782684,
"time_to_max_ms": 125.00848954088184,
"trail_off_quality": 0.9934167853955712,
"is_threshold_braking": false
},
{
"distance_m": 570.531005859375,
"time_seconds": 63.816833910622115,
"initial_speed_kmh": 13.295083575778538,
"initial_pressure": 0.10131999850273132,
"max_pressure": 0.1872590035200119,
"time_to_max_ms": 145.84323779769903,
"trail_off_quality": 0.9839896149933338,
"is_threshold_braking": false
},
{
"distance_m": 653.2579956054688,
"time_seconds": 70.25477112197773,
"initial_speed_kmh": 20.978722042507595,
"initial_pressure": 0.1020520031452179,
"max_pressure": 0.2497600018978119,
"time_to_max_ms": 222.2373147393597,
"trail_off_quality": 0.9847279782307908,
"is_threshold_braking": false
},
{
"distance_m": 893.9739990234375,
"time_seconds": 96.28431661082436,
"initial_speed_kmh": 26.347916920979817,
"initial_pressure": 0.10693500190973282,
"max_pressure": 0.39379000663757324,
"time_to_max_ms": 583.3729511907961,
"trail_off_quality": 0.9857313109977731,
"is_threshold_braking": false
}
]
},
"metadata": {
"analyzer": "rally_braking",
"title": "Rally Braking Analysis",
"subjects_analyzed": 1
}
}

Metrics Summary

MetricValue
Subject: d0c8e5bbf805540bRSF driver

Relaxed Threshold

Options: threshold_brake_ratio=0.5

{
"metrics": [
{
"subject_id": "d0c8e5bbf805540b",
"driver_name": "RSF driver",
"brake_event_count": 10,
"threshold_brake_count": 2,
"threshold_brake_pct": 0.2,
"avg_trail_off_quality": 0.9807204220160267,
"initial_attack_score": 0.501685291776087,
"avg_speed_reduction_kmh": 21.94945822821723,
"avg_max_pressure": 0.41590760201215743,
"threshold_brake_formatted": "20%",
"trail_off_formatted": "98%",
"initial_attack_formatted": "50%"
}
],
"brake_events": {
"d0c8e5bbf805540b": [
{
"distance_m": 104.39600372314453,
"time_seconds": 16.841421507591537,
"initial_speed_kmh": 28.080276913113064,
"initial_pressure": 0.10913299769163132,
"max_pressure": 0.7925230264663696,
"time_to_max_ms": 409.7500490506789,
"trail_off_quality": 0.9805347234583818,
"is_threshold_braking": false
},
{
"distance_m": 129.8249969482422,
"time_seconds": 18.966565829786592,
"initial_speed_kmh": 13.612527847290039,
"initial_pressure": 0.11279500275850296,
"max_pressure": 0.40160199999809265,
"time_to_max_ms": 270.8517273385844,
"trail_off_quality": 0.9772206155153421,
"is_threshold_braking": false
},
{
"distance_m": 323.45599365234375,
"time_seconds": 40.398576869962874,
"initial_speed_kmh": 28.214999304877388,
"initial_pressure": 0.10131999850273132,
"max_pressure": 0.8367589712142944,
"time_to_max_ms": 597.2627833620123,
"trail_off_quality": 0.9771036080954993,
"is_threshold_braking": false
},
{
"distance_m": 413.6619873046875,
"time_seconds": 47.26709887862598,
"initial_speed_kmh": 27.22044414944119,
"initial_pressure": 0.11792200058698654,
"max_pressure": 0.4313879907131195,
"time_to_max_ms": 187.5127343113263,
"trail_off_quality": 0.9710309831425548,
"is_threshold_braking": false
},
{
"distance_m": 424.6260070800781,
"time_seconds": 47.961590487186456,
"initial_speed_kmh": 19.98233371310764,
"initial_pressure": 0.10473799705505371,
"max_pressure": 0.21045200526714325,
"time_to_max_ms": 166.67798605451623,
"trail_off_quality": 0.9667353113181889,
"is_threshold_braking": false
},
{
"distance_m": 539.3350219726562,
"time_seconds": 61.35138870023243,
"initial_speed_kmh": 24.790333641899956,
"initial_pressure": 0.10131999850273132,
"max_pressure": 0.518090009689331,
"time_to_max_ms": 284.74155950979707,
"trail_off_quality": 0.9867132890128321,
"is_threshold_braking": false
},
{
"distance_m": 565.9459838867188,
"time_seconds": 63.39319402940023,
"initial_speed_kmh": 16.971944173177082,
"initial_pressure": 0.10473799705505371,
"max_pressure": 0.13745300471782684,
"time_to_max_ms": 125.00848954088184,
"trail_off_quality": 0.9934167853955712,
"is_threshold_braking": true
},
{
"distance_m": 570.531005859375,
"time_seconds": 63.816833910622115,
"initial_speed_kmh": 13.295083575778538,
"initial_pressure": 0.10131999850273132,
"max_pressure": 0.1872590035200119,
"time_to_max_ms": 145.84323779769903,
"trail_off_quality": 0.9839896149933338,
"is_threshold_braking": true
},
{
"distance_m": 653.2579956054688,
"time_seconds": 70.25477112197773,
"initial_speed_kmh": 20.978722042507595,
"initial_pressure": 0.1020520031452179,
"max_pressure": 0.2497600018978119,
"time_to_max_ms": 222.2373147393597,
"trail_off_quality": 0.9847279782307908,
"is_threshold_braking": false
},
{
"distance_m": 893.9739990234375,
"time_seconds": 96.28431661082436,
"initial_speed_kmh": 26.347916920979817,
"initial_pressure": 0.10693500190973282,
"max_pressure": 0.39379000663757324,
"time_to_max_ms": 583.3729511907961,
"trail_off_quality": 0.9857313109977731,
"is_threshold_braking": false
}
]
},
"metadata": {
"analyzer": "rally_braking",
"title": "Rally Braking Analysis",
"subjects_analyzed": 1
}
}

Metrics Summary

MetricValue
Subject: d0c8e5bbf805540bRSF driver

Example Calls

Am I using threshold braking correctly

analyze(analyzers='rally_braking', event='...')

Analyzes brake attack speed and threshold braking percentage

How is my trail braking

analyze(analyzers='rally_braking', event='...', lap_selection='best')

Analyzes trail-off quality on best lap


Generated from b4racing.analysis.analyzers.rally_braking.RallyBrakingAnalyzer