@ -1,45 +1,193 @@
<?xml version='1.0' encoding='UTF-8'?>
<?xml version='1.0' encoding='UTF-8'?>
<root >
<root >
<tabbed_widget name= "Main Window" parent= "main_w indow">
<tabbed_widget parent= "main_window" name= "Main W indow">
<Tab tab_name= "tab1" containers= "1 ">
<Tab containers= "1" tab_name= "Lateral Plan Conformance ">
<Container >
<Container >
<DockSplitter sizes= "0.250298;0.250298;0.249106;0.250298" orientation= "-" count= "4 ">
<DockSplitter count= "4" sizes= "0.25;0.25;0.25;0.25" orientation= "- ">
<DockArea name= "... " >
<DockArea name= "desired vs actual lateral acceleration (closer means better conformance to plan) " >
<plot style= "Lines" flip_x= "false " flip_y= "false" mode= "TimeSeries" >
<plot flip_x= "false" style= "Lines " flip_y= "false" mode= "TimeSeries" >
<range bottom= "-2.900899" top= "3.526047" left= "825.563261" right= "1415.827546 "/>
<range top= "3.586831" right= "269.643117" left= "0.000140" bottom= "-2.354077 "/>
<limitY />
<limitY />
<curve name= "/controlsState/lateralControlState/torqueState/actualLateralAccel" color= "#1f77b4 " />
<curve color= "#1f77b4" name= "/controlsState/lateralControlState/torqueState/actualLateralAccel" />
<curve name= "/controlsState/lateralControlState/torqueState/desiredLateralAccel" color= "#d62728 " />
<curve color= "#d62728" name= "/controlsState/lateralControlState/torqueState/desiredLateralAccel" />
</plot>
</plot>
</DockArea>
</DockArea>
<DockArea name= "... " >
<DockArea name= "desired vs actual lateral acceleration, road-roll factored out (closer means better conformance to plan) " >
<plot style= "Lines" flip_x= "false " flip_y= "false" mode= "TimeSeries" >
<plot flip_x= "false" style= "Lines " flip_y= "false" mode= "TimeSeries" >
<range bottom= "-4.577789" top= "3.642392" left= "825.563261" right= "1415.827546 "/>
<range top= "3.445087" right= "269.643117" left= "0.000140" bottom= "-2.654874 "/>
<limitY />
<limitY />
<curve name= "Actual lateral accel (roll compensated)" color= "#1ac938 " />
<curve color= "#1ac938" name= "Actual lateral accel (roll compensated)" />
<curve name= "Desired lateral accel (roll compensated)" color= "#ff7f0e " />
<curve color= "#ff7f0e" name= "Desired lateral accel (roll compensated)" />
</plot>
</plot>
</DockArea>
</DockArea>
<DockArea name= "... " >
<DockArea name= "controller feed-forward vs actuator output (closer means controller prediction is more accurate) " >
<plot style= "Lines" flip_x= "false " flip_y= "false" mode= "TimeSeries" >
<plot flip_x= "false" style= "Lines " flip_y= "false" mode= "TimeSeries" >
<range bottom= "-1.134948" top= "1.052072" left= "825.563261" right= "1415.827546 "/>
<range top= "1.082031" right= "269.643117" left= "0.000140" bottom= "-1.050781 "/>
<limitY />
<limitY />
<curve name= "/carOutput/actuatorsOutput/steer" color= "#9467bd ">
<curve color= "#9467bd" name= "/carOutput/actuatorsOutput/steer ">
<transform name= "Scale/Offset" alias= "/carOutput/actuatorsOutput/steer[Scale/Offset]" >
<transform alias= "/carOutput/actuatorsOutput/steer[Scale/Offset]" name= "Scale/Offset " >
<options time_offset= "0" value_scale= "-1 " value_offset= "0" />
<options value_scale= "-1" time_offset= "0 " value_offset= "0" />
</transform>
</transform>
</curve>
</curve>
<curve name= "/controlsState/lateralControlState/torqueState/f" color= "#1f77b4 " />
<curve color= "#1f77b4" name= "/controlsState/lateralControlState/torqueState/f" />
<curve name= "/carState/steeringPressed" color= "#ff000f "/>
<curve color= "#ff000f" name= "/carState/steeringPressed "/>
</plot>
</plot>
</DockArea>
</DockArea>
<DockArea name= "... " >
<DockArea name= "vehicle speed " >
<plot style= "Lines" flip_x= "false " flip_y= "false" mode= "TimeSeries" >
<plot flip_x= "false" style= "Lines " flip_y= "false" mode= "TimeSeries" >
<range bottom= "-1.373608" top= "56.208012" left= "825.563261" right= "1415.827546 "/>
<range top= "101.506277" right= "269.643117" left= "0.000140" bottom= "-2.475763 "/>
<limitY />
<limitY />
<curve name= "carState.vEgo mph" color= "#d62728" />
<curve color= "#d62728" name= "carState.vEgo mph" />
<curve name= "carState.vEgo kmh" color= "#1ac938" />
<curve color= "#1ac938" name= "carState.vEgo kmh" />
<curve name= "/carState/vEgo" color= "#ff7f0e" />
<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/steer" >
<transform alias= "/carOutput/actuatorsOutput/steer[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= "#d62728" name= "/controlsState/lateralControlState/torqueState/desiredLateralAccel" />
<curve color= "#1f77b4" 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= "#1ac938" 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= "#ff7f0e" 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= "#1ac938" 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= "#ff7f0e" 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= "#1ac938" 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= "#ff7f0e" name= "/controlsState/lateralControlState/torqueState/actualLateralAccel" />
</plot>
</plot>
</DockArea>
</DockArea>
</DockSplitter>
</DockSplitter>
@ -57,34 +205,39 @@
<!-- - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - -->
<customMathEquations >
<customMathEquations >
<snippet name= "carState.vEgo kmh" >
<snippet name= "Zero" >
<global > </global>
<function > return value * 3.6</function>
<linked_source > /carState/vEgo</linked_source>
</snippet>
<snippet name= "carState.vEgo mph" >
<global > </global>
<global > </global>
<function > return value * 2.23694 </function>
<function > return (0)</function>
<linked_source > /carState/vEgo </linked_source>
<linked_source > /carState/canValid</linked_source>
</snippet>
</snippet>
<snippet name= "Desired lateral accel (roll compensated)" >
<snippet name= "Actual lateral accel (roll compensated)" >
<global > </global>
<global > </global>
<function > return (value * v1 ^ 2) - (v2 * 9.81)</function>
<function > return (value * v1 ^ 2) - (v2 * 9.81)</function>
<linked_source > /controlsState/desiredC urvature</linked_source>
<linked_source > /controlsState/c urvature</linked_source>
<additional_sources >
<additional_sources >
<v1 > /carState/vEgo</v1>
<v1 > /carState/vEgo</v1>
<v2 > /liveParameters/roll</v2>
<v2 > /liveParameters/roll</v2>
</additional_sources>
</additional_sources>
</snippet>
</snippet>
<snippet name= "Actual lateral accel (roll compensated)" >
<snippet name= "Desired lateral accel (roll compensated)" >
<global > </global>
<global > </global>
<function > return (value * v1 ^ 2) - (v2 * 9.81)</function>
<function > return (value * v1 ^ 2) - (v2 * 9.81)</function>
<linked_source > /controlsState/c urvature</linked_source>
<linked_source > /controlsState/desiredC urvature</linked_source>
<additional_sources >
<additional_sources >
<v1 > /carState/vEgo</v1>
<v1 > /carState/vEgo</v1>
<v2 > /liveParameters/roll</v2>
<v2 > /liveParameters/roll</v2>
</additional_sources>
</additional_sources>
</snippet>
</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>
</customMathEquations>
<snippets />
<snippets />
<!-- - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - -->