<?xml version='1.0' encoding='UTF-8'?>
<root >
<tabbed_widget parent= "main_window" name= "Main Window" >
<Tab containers= "1" tab_name= "Lateral Plan Conformance" >
<Container >
<DockSplitter count= "4" sizes= "0.25;0.25;0.25;0.25" orientation= "-" >
<DockArea name= "desired vs actual lateral acceleration (closer means better conformance to plan)" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "3.586831" right= "269.643117" left= "0.000140" bottom= "-2.354077" />
<limitY />
<curve color= "#1f77b4" name= "/controlsState/lateralControlState/torqueState/actualLateralAccel" />
<curve color= "#d62728" name= "/controlsState/lateralControlState/torqueState/desiredLateralAccel" />
</plot>
</DockArea>
<DockArea name= "desired vs actual lateral acceleration, road-roll factored out (closer means better conformance to plan)" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "3.445087" right= "269.643117" left= "0.000140" bottom= "-2.654874" />
<limitY />
<curve color= "#1ac938" name= "Actual lateral accel (roll compensated)" />
<curve color= "#ff7f0e" name= "Desired lateral accel (roll compensated)" />
</plot>
</DockArea>
<DockArea name= "controller feed-forward vs actuator output (closer means controller prediction is more accurate)" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "1.082031" right= "269.643117" left= "0.000140" bottom= "-1.050781" />
<limitY />
<curve color= "#9467bd" name= "/carOutput/actuatorsOutput/torque" >
<transform alias= "/carOutput/actuatorsOutput/torque[Scale/Offset]" name= "Scale/Offset" >
<options value_scale= "-1" time_offset= "0" value_offset= "0" />
</transform>
</curve>
<curve color= "#1f77b4" name= "/controlsState/lateralControlState/torqueState/f" />
<curve color= "#ff000f" name= "/carState/steeringPressed" />
</plot>
</DockArea>
<DockArea name= "vehicle speed" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "101.506277" right= "269.643117" left= "0.000140" bottom= "-2.475763" />
<limitY />
<curve color= "#d62728" name= "carState.vEgo mph" />
<curve color= "#1ac938" name= "carState.vEgo kmh" />
<curve color= "#ff7f0e" name= "/carState/vEgo" />
</plot>
</DockArea>
</DockSplitter>
</Container>
</Tab>
<Tab containers= "1" tab_name= "Actuator Performance" >
<Container >
<DockSplitter count= "3" sizes= "0.33361;0.33278;0.33361" orientation= "-" >
<DockArea name= "offline-calculated vs online-learned lateral accel scaling factor, accel obtained from 100% actuator output" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "4.186453" right= "269.490213" left= "0.000000" bottom= "3.175940" />
<limitY />
<curve color= "#1f77b4" name= "/liveTorqueParameters/latAccelFactorFiltered" />
<curve color= "#d62728" name= "/liveTorqueParameters/latAccelFactorRaw" />
<curve color= "#1c9222" name= "/carParams/lateralTuning/torque/latAccelFactor" />
</plot>
</DockArea>
<DockArea name= "learned lateral accel offset, vehicle-specific compensation to obtain true zero lateral accel" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "0.003035" right= "269.490213" left= "0.000000" bottom= "-0.124417" />
<limitY />
<curve color= "#1ac938" name= "/liveTorqueParameters/latAccelOffsetFiltered" />
<curve color= "#ff7f0e" name= "/liveTorqueParameters/latAccelOffsetRaw" />
</plot>
</DockArea>
<DockArea name= "offline-calculated vs online-learned EPS friction factor, necessary to start moving the steering wheel" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "0.121143" right= "269.490213" left= "0.000000" bottom= "-0.002955" />
<limitY />
<curve color= "#f14cc1" name= "/liveTorqueParameters/frictionCoefficientFiltered" />
<curve color= "#9467bd" name= "/liveTorqueParameters/frictionCoefficientRaw" />
<curve color= "#1c9222" name= "/carParams/lateralTuning/torque/friction" />
</plot>
</DockArea>
</DockSplitter>
</Container>
</Tab>
<Tab containers= "1" tab_name= "Vehicle Dynamics" >
<Container >
<DockSplitter count= "3" sizes= "0.33361;0.33278;0.33361" orientation= "-" >
<DockArea name= "configured-initial vs online-learned steerRatio, set configured value to match learned" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "12.903705" right= "269.638801" left= "0.000000" bottom= "12.748092" />
<limitY />
<curve color= "#1f77b4" name= "/carParams/steerRatio" />
<curve color= "#1ac938" name= "/liveParameters/steerRatio" />
</plot>
</DockArea>
<DockArea name= "configured-initial vs online-learned tireStiffnessRatio, set configured value to match learned" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "1.000520" right= "269.638801" left= "0.000000" bottom= "0.999718" />
<limitY />
<curve color= "#d62728" name= "/carParams/tireStiffnessFactor" />
<curve color= "#ff7f0e" name= "/liveParameters/stiffnessFactor" />
</plot>
</DockArea>
<DockArea name= "live steering angle offsets for straight-ahead driving, large values here may indicate alignment problems" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "-0.332067" right= "269.638801" left= "0.000000" bottom= "-3.149970" />
<limitY />
<curve color= "#f14cc1" name= "/liveParameters/angleOffsetAverageDeg" />
<curve color= "#9467bd" name= "/liveParameters/angleOffsetDeg" />
</plot>
</DockArea>
</DockSplitter>
</Container>
</Tab>
<Tab containers= "1" tab_name= "Controller PIF Terms" >
<Container >
<DockSplitter count= "3" sizes= "0.33361;0.33278;0.33361" orientation= "-" >
<DockArea name= "controller feed-forward vs actuator output (closer means controller prediction is more accurate)" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "1.082031" right= "269.643117" left= "0.000140" bottom= "-1.050781" />
<limitY />
<curve color= "#9467bd" name= "/carOutput/actuatorsOutput/torque" >
<transform alias= "/carOutput/actuatorsOutput/torque[Scale/Offset]" name= "Scale/Offset" >
<options value_scale= "-1.0" time_offset= "0" value_offset= "0" />
</transform>
</curve>
<curve color= "#1f77b4" name= "/controlsState/lateralControlState/torqueState/f" />
<curve color= "#ff000f" name= "/carState/steeringPressed" />
</plot>
</DockArea>
<DockArea name= "proportional, integral, and feed-forward terms (actuator output = sum of PIF terms)" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "1.572946" right= "269.643117" left= "0.000140" bottom= "-3.822608" />
<limitY />
<curve color= "#0ab027" name= "/controlsState/lateralControlState/torqueState/f" />
<curve color= "#d62728" name= "/controlsState/lateralControlState/torqueState/p" />
<curve color= "#ffaf00" name= "/controlsState/lateralControlState/torqueState/i" />
<curve color= "#756a6a" name= "Zero" />
</plot>
</DockArea>
<DockArea name= "road roll angle, from openpilot localizer" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "0.059127" right= "269.643117" left= "0.000140" bottom= "-0.031841" />
<limitY />
<curve color= "#f14cc1" name= "/liveParameters/roll" />
</plot>
</DockArea>
</DockSplitter>
</Container>
</Tab>
<Tab containers= "1" tab_name= "Actuator Delay Estimation" >
<Container >
<DockSplitter count= "4" sizes= "0.25;0.25;0.25;0.25" orientation= "-" >
<DockArea name= "desired vs actual lateral acceleration (baseline)" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "3.586831" right= "269.943117" left= "0.134774" bottom= "-2.354077" />
<limitY />
<curve color= "#ff7f0e" name= "/controlsState/lateralControlState/torqueState/desiredLateralAccel" />
<curve color= "#1ac938" name= "/controlsState/lateralControlState/torqueState/actualLateralAccel" />
</plot>
</DockArea>
<DockArea name= "desired vs actual lateral acceleration (desired shifted by +0.1s)" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "3.586831" right= "269.943117" left= "0.134774" bottom= "-2.354077" />
<limitY />
<curve color= "#ff7f0e" name= "/controlsState/lateralControlState/torqueState/desiredLateralAccel" >
<transform alias= "/controlsState/lateralControlState/torqueState/desiredLateralAccel[Scale/Offset]" name= "Scale/Offset" >
<options value_scale= "1.0" time_offset= "0.1" value_offset= "0" />
</transform>
</curve>
<curve color= "#1ac938" name= "/controlsState/lateralControlState/torqueState/actualLateralAccel" />
</plot>
</DockArea>
<DockArea name= "desired vs actual lateral acceleration (desired shifted by +0.2s)" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "3.586831" right= "269.943117" left= "0.134774" bottom= "-2.354077" />
<limitY />
<curve color= "#ff7f0e" name= "/controlsState/lateralControlState/torqueState/desiredLateralAccel" >
<transform alias= "/controlsState/lateralControlState/torqueState/desiredLateralAccel[Scale/Offset]" name= "Scale/Offset" >
<options value_scale= "1.0" time_offset= "0.2" value_offset= "0" />
</transform>
</curve>
<curve color= "#1ac938" name= "/controlsState/lateralControlState/torqueState/actualLateralAccel" />
</plot>
</DockArea>
<DockArea name= "desired vs actual lateral acceleration (desired shifted by +0.3s)" >
<plot flip_x= "false" style= "Lines" flip_y= "false" mode= "TimeSeries" >
<range top= "3.586831" right= "269.943117" left= "0.134774" bottom= "-2.354077" />
<limitY />
<curve color= "#ff7f0e" name= "/controlsState/lateralControlState/torqueState/desiredLateralAccel" >
<transform alias= "/controlsState/lateralControlState/torqueState/desiredLateralAccel[Scale/Offset]" name= "Scale/Offset" >
<options value_scale= "1.0" time_offset= "0.3" value_offset= "0" />
</transform>
</curve>
<curve color= "#1ac938" name= "/controlsState/lateralControlState/torqueState/actualLateralAccel" />
</plot>
</DockArea>
</DockSplitter>
</Container>
</Tab>
<currentTabIndex index= "0" />
</tabbed_widget>
<use_relative_time_offset enabled= "1" />
<!-- - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - -->
<Plugins >
<plugin ID= "DataLoad Rlog" />
<plugin ID= "Cereal Subscriber" />
</Plugins>
<!-- - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - -->
<customMathEquations >
<snippet name= "Zero" >
<global > </global>
<function > return (0)</function>
<linked_source > /carState/canValid</linked_source>
</snippet>
<snippet name= "Actual lateral accel (roll compensated)" >
<global > </global>
<function > return (value * v1 ^ 2) - (v2 * 9.81)</function>
<linked_source > /controlsState/curvature</linked_source>
<additional_sources >
<v1 > /carState/vEgo</v1>
<v2 > /liveParameters/roll</v2>
</additional_sources>
</snippet>
<snippet name= "Desired lateral accel (roll compensated)" >
<global > </global>
<function > return (value * v1 ^ 2) - (v2 * 9.81)</function>
<linked_source > /controlsState/desiredCurvature</linked_source>
<additional_sources >
<v1 > /carState/vEgo</v1>
<v2 > /liveParameters/roll</v2>
</additional_sources>
</snippet>
<snippet name= "carState.vEgo mph" >
<global > </global>
<function > return value * 2.23694</function>
<linked_source > /carState/vEgo</linked_source>
</snippet>
<snippet name= "carState.vEgo kmh" >
<global > </global>
<function > return value * 3.6</function>
<linked_source > /carState/vEgo</linked_source>
</snippet>
</customMathEquations>
<snippets />
<!-- - - - - - - - - - - - - - - -->
</root>